I would like a form with 2 elements on a row (JLabel
and JTextField
),
but I don't know used layouts in Java (Swing).
I know that GridBagLayout
is a good Layout for this. Someone people can help me?
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;
}