J'ai un JPANEL général où sont déclarés pas mal de choses dont des boutons

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
JPanel monpanel = new JPanel; //Declaré en global
 
monpanel.add(button1);
monpanel.add(button2);
Je sais que l'on peut imbriquer des JPanel les un dans les autres de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
JPanel monpanel1 = new JPanel();//Declaré en global
JPanel monpanel2 = new JPanel();//Declaré en global
 
monpanel1.add(button1);
monpanel1.add(button2);
monpanel1.add(monpanel2);
Les composants de monpanel2 sont declarés dans une autre class

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
public class Moncontenu{
 
public JPanel getContenu{
 
JPanel monpanel = new JPanel();
 
monpanel.add(button3);
monpanel.add(button4);
 
return monpanel;
}
}
Je souhaite integerer un nouveau panel lors d'un evenement sur le button1

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public void actionPerformed(ActionEvent e) {		
if(e.getSource() == button1){
   Moncontenu m = new Moncontenu();
   monpanel2 = m.getContenu();
   monpanel2.updateUI();
}
}
le probleme c'est que si je fais ça ça ne marche pas alors que si je fais ça :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
public void actionPerformed(ActionEvent e) {		
if(e.getSource() == button1){
   Moncontenu m = new Moncontenu();
   monpanel2 = m.getContenu();
   monpanel.add(monpanel2);
   monpanel2.updateUI();
}
}
La tout fonctionne !!!! PKOI ça ne rafraichi pas mon panel monpanel2 lors du premier code, pkoi je suis obligé de faire un add à monpanel pour que ça tourne ?????