Bonjour,
Je cherche à créer dynamiquement un JPanel dans lequel je veux disposer à l'aide d'un GridLayout(par exemple) d'autres JPanel.
J'ai créé une petite applet pour mettre en évidence mon problème : j'ai un JTextField et un JButton, et lorsque l'on clique sur le bouton ca doit créer un pnl en dessous avec un gridLayout et ajouter à celui-ci autant de panel qu'indiqué dans le textField.
Pour que le spanels soient bien ajoutés dynamiquement, je suis obligé d'utiliser la méthode ".setBounds" (comme s'il n'y avait pas de layout alors que le but d'un layout entre autres et notament de gérer les problèmes de disposition).
Donc voilà je ne comprends pas trop pourquoi cela ne marche que lorsque jutilise la méthode "setBounds" que ce soit sans layout ou avec...
Voici le code appelé par lorsqu'on clique sur le bouton pour créer dynamiquement le panel "pnlBas":
public void construirePnlBas()
{
this.pnlBas = new JPanel(new GridLayout(0,1));
this.pnlBas.setBounds(this.pnlFond.getX(),this.pnlCentre.getY()+this.pnlCentre.getHeight(),
pnlFond.getWidth(),pnlFond.getHeight()-pnlHaut.getHeight()-pnlCentre.getHeight());
this.pnlBas.setBackground(Color.red);
this.pnlBas.setBorder(BorderFactory.createTitledBorder("PnlBas"));
JPanel[] tabPnlBas = new JPanel[nombre];
for (int i=0;i<tabPnlBas.length;i++)
{
tabPnlBas[i] = new JPanel();
//tabPnlBas[i].setBounds(i*100,i*50,200,50);
tabPnlBas[i].setBackground(Color.black);
tabPnlBas[i].setBorder(BorderFactory.createTitledBorder("Label "+i));
this.pnlBas.add(tabPnlBas[i]);
this.pnlBas.repaint();
}
this.pnlFond.add(pnlBas);
this.pnlFond.repaint();
}