Swing中表单的最佳布局(姓氏,名字,地址......)

时间:2017-06-08 13:48:27

标签: java forms swing layout layout-manager

我想要一个行上有2个元素的表单(JLabelJTextField), 但我不知道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;
}

0 个答案:

没有答案