Java Swing中表单的最佳布局(姓、名、地址…)

Java Swing中表单的最佳布局(姓、名、地址…),java,forms,swing,layout,layout-manager,Java,Forms,Swing,Layout,Layout Manager,我想要一个一行有两个元素的表单(JLabel和JTextField), 但我不知道Java(Swing)中使用的布局 我知道GridBagLayout是一个很好的布局。有人能帮我吗 public class FenetreAjoutClient { public JPanel FenetreAjoutClient(){ panel.add(lblNom); panel.add(txtNom); panel.add(lblPrenom); panel.add(tx

我想要一个一行有两个元素的表单(
JLabel
JTextField
), 但我不知道Java(Swing)中使用的布局

我知道
GridBagLayout
是一个很好的布局。有人能帮我吗

public class FenetreAjoutClient {

public JPanel FenetreAjoutClient(){
    panel.add(lblNom);
    panel.add(txtNom);
    panel.add(lblPrenom);
    panel.add(txtPrenom);
    panel.add(lblAdr);
    panel.add(txtAdr);
    panel.add(lblCP);
    panel.add(txtCP);
    panel.add(lblVille);
    panel.add(txtVille);
    panel.add(lblStatut);
    comboStatut.addItem("Particulier");
    comboStatut.addItem("Professionnel");
    panel.add(comboStatut);
    panel.add(lblRemise);
    panel.add(txtRemise);
    panel.add(lblSaisieObl);

    //bnEnregistrer.setEnabled(false);
    bnEnregistrer.setPreferredSize(new Dimension(140, 40));
    bnEnregistrer.setBackground(new Color(50, 74, 110));
    bnEnregistrer.setForeground(Color.WHITE);
    bnEnregistrer.addMouseListener(this);
    panel.add(bnEnregistrer);

    bnAnnuler.setPreferredSize(new Dimension(140, 40));
    bnAnnuler.setBackground(new Color(50, 74, 110));
    bnAnnuler.setForeground(Color.WHITE);
    bnAnnuler.addMouseListener(this);
    panel.add(bnAnnuler);


    JLabel labels[] = {lblNom, lblPrenom, lblAdr, lblCP, lblVille, lblStatut, lblRemise};
    JTextField txtFields[] = {txtNom, txtPrenom, txtAdr, txtCP, txtVille, txtRemise};
    for(int i = 0; i < labels.length && i < txtFields.length; i++){
        labels[i].setPreferredSize(new Dimension(110, 20));
        txtFields[i].setPreferredSize(new Dimension(160, 20));
    }
    //Composants particuliers
    txtAdr.setPreferredSize(new Dimension(230, 20));
    txtCP.setPreferredSize(new Dimension(50, 20));
    txtRemise.setPreferredSize(new Dimension(50, 20));

    activeBouton();

    return panel;
}
公共类FenetreAjoutClient{
公共JPanel FenetreAjoutClient(){
面板。添加(lblNom);
面板。添加(txtNom);
面板。添加(lblPrenom);
添加面板(txtPrenom);
面板。添加(lblAdr);
面板。添加(txtAdr);
面板。添加(lblCP);
添加面板(txtCP);
面板。添加(lblVille);
小组.增补(txtVille);
面板。添加(LBLSTAUT);
附加条款(“特殊条款”);
附加条款(“专业人士”);
面板。添加(comboStatut);
面板。添加(lblRemise);
面板。添加(txtRemise);
面板添加(lblSaisieObl);
//bnenregister.setEnabled(false);
bNeRegistrer.setPreferredSize(新尺寸(140,40));
挫折背景(新颜色(50,74,110));
bNeRegistrer.设置前景(颜色:白色);
b登记者。addMouseListener(本);
新增专家组(bnEnregistrer);
b环空器设置首选尺寸(新尺寸(140,40));
新颜色(50,74,110);
设置前景(颜色:白色);
bnInner.addMouseListener(本);
面板。添加(b环空器);
JLabel标签[]={lblNom、lblPrenom、lblAdr、lblCP、lblVille、lblStatut、lblRemise};
JTextField txtFields[]={txtNom、txtPrenom、txtar、txtCP、txtVille、txtRemise};
对于(int i=0;i
1)布局的最佳策略通常是将它们结合起来,使用最适合GUI每个逻辑部分的布局。以最小尺寸提供ASCII艺术或GUI预期布局的简单绘图,如果可以调整大小,则具有更大的宽度和高度。2)但要使用简单的标签/字段组合。或者
GridBagLAyout
或者(如果将IDE与GUI builder一起使用)
GroupLayout
会很好。3)请参阅(是)…在这种情况下,标签从文本和字体中获取其首选大小。文本字段从列数和字体中获取大小。按钮从文本/图标和页边距的大小获取其大小。不要试图猜测它应该是什么。4)为了尽快获得更好的帮助,请发布or。
我知道GridBagLayout是一个很好的布局。
-好的,然后使用它。首先阅读Swing教程中的部分,了解基本信息和工作示例。我们不会为您编写代码。