[Jdialog] Réajustement auto
Bonjour,
Je suis en train de réaliser une boite de dialogue qui va contenir un nombre de composants non fixe(textField et jlabel) et je voudrais savoir si il y ' a un moyen d ' ajuster la taille du jdialog (en hauteur) selon le nombre de composants présent dans celui ci ?
Mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| public class ConfigurationRequete extends JDialog implements ActionListener{
private Dimension dimLabel=new Dimension(200,20);
private Dimension dimbouton=new Dimension(100,20);
private ParsingXML parsing;
public ConfigurationRequete() throws JDOMException {
super();
initialize();
}
public void initialize()
{
this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
this.setTitle("Configuration fichier XML");
this.setLayout(new BorderLayout());
this.getContentPane().add(containerNord(),BorderLayout.NORTH);
this.getContentPane().add(containerSud(),BorderLayout.SOUTH);
this.getContentPane().add(containerCentre(),BorderLayout.CENTER);
this.setLocationRelativeTo(null);
this.setPreferredSize(new Dimension(400,600));
//this.setResizable(false);
this.pack();
this.setVisible(true);
}
public JPanel containerNord()
{
JPanel containerNord= new JPanel();// panneau graphique
JLabel label=new JLabel("Configuration du fichier XML",JLabel.CENTER);
//containerNord.setLayout(new BorderLayout());
containerNord.add(label);
return containerNord;
}
public JPanel containerCentre()
{
parsing=new ParsingXML();
JPanel container=new JPanel();
container.setLayout(new FlowLayout());
//container.setBorder(BorderFactory.createLineBorder(Color.BLACK));
List<String> parametresBody;
try {
parametresBody = parsing.afficherParametres();
List<String> tailleParametres=parsing.afficherTailleParametres();
JLabel label[]= new JLabel[parametresBody.size()];
JTextField champSaisie[]= new JTextField[parametresBody.size()];
for(int i=0;i<parametresBody.size();i++)
{
label[i]=new JLabel(parametresBody.get(i));
label[i].setPreferredSize(dimLabel);
label[i].setHorizontalAlignment(JLabel.LEFT);
label[i].setFont(new Font("Arial",Font.BOLD,15));
label[i].setToolTipText("sisi");
champSaisie[i]=new JTextField(new TextLimiter(Integer.parseInt(tailleParametres.get(i))), "", 15);
container.add(label[i]);
container.add(champSaisie[i]);
}
} catch (JDOMException e) {
System.err.println("Erreur lors de la récupération du fichier JDOM "
+ e.getMessage() );
}
return container;
}
public JPanel containerSud()
{
JPanel container=new JPanel();//disposition en flowlayout
Button valider=new Button("Valider");
valider.setPreferredSize(dimbouton);
valider.addActionListener(this);
Button quit=new Button("Quitter");
quit.setPreferredSize(dimbouton);
this.setLayout(new BorderLayout());
container.add(valider);
container.add(quit);
return container;
} |
Merci de votre aide