Bonjour,
je fais un jeu avec swing et j'aimerais passé d'un JPanel pan (sous classe de JPanel avec un paintComponent) à un autre JPanel panOuverture (standar cette fois,instancié dans les attributs de la classe Jeu), pour pouvoir afficher le menu une fois le jeu fini.

Donc dans une sous classe de JFrame nommée Jeu,

j'ai fais cette fonction:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public void changePan(){
   this.remove(pan);
   this.add(panOuverture);
   this.pack();
   this.setVisible(true);
   pan.Ouverture.requestFocusInWindow();
}
et dans pan j'appelle la fonction changePan(), une fois que le joueur a perdu !

Or, ça ne fonctionne pas, j'ai des erreurs du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5223)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
at javax.swing.RepaintManager.paint(RepaintManager.java:1249)
at javax.swing.JComponent._paintImmediately(JComponent.java:5171)
at javax.swing.RepaintManager$3.run(RepaintManager.java:796)
Je voulais savoir si d'abord cette fonction est bonne parce que je ne sais pas trop géré les panels avec les paintComponent() comme vous pouvez le voir, je me dis que peut être j'oublie une instruction nécessaire.

MERCI