J'ai un problème avec mon applet: il ne se rafraîchit pas quand j'en ai besoin.Swing: setContentPane ne rafraîchit pas l'interface lorsqu'il est appelé
J'essaie de passer d'un écran d'interface à l'autre lorsque je clique sur le bouton.
J'ai un
public class PixelRainEditorApp extends JApplet
et init
SwingUtilities.invokeAndWait(new Runnable() {
public void run() {
createGUI();
}
});
private void createGUI() {
a = new A(this);
this.setSize(800, 480);
}
Puis j'ai 2 classes A et B qui se prolongent JPanel
public A(JApplet parent) {
super(parent);
setOpaque(true);
setBackground(Color.BLACK);
this.parent.setContentPane(this);
}
lorsque je clique sur un bouton voir A
@Override
public void actionPerformed(ActionEvent e) {
if(TAG.equalsIgnoreCase(e.getActionCommand())){
new B(this.baseParent);
}
}
et B est le même que A mais avec des images différentes
public B(JApplet parent) {
super(parent);
setOpaque(true);
setBackground(Color.BLACK);
this.parent.setContentPane(this);
}
Maintenant, cela fonctionne très bien quand je veux afficher A, mais quand je veux lancer B lorsque je clique sur un bouton A, rien arrive. C'est seulement quand je redimensionne la fenêtre que B apparaît ... J'ai essayé d'invalider ou repeindre et de repeindre et de divers endroits dans mes applications mais rien ne se passe
Des idées?
Jason
Comment ajouter une instance de la classe B? –
Edité ma question, je suis sûr que c'est quelque chose de si stupide: S –
Je ne pense pas que ce soit stupide, j'ai eu des problèmes similaires dans le passé et je suis sûr que mon code était correct. Essayez la méthode revalidate() (si elle est disponible), essayez différents look & feel (je ne suis pas sûr - je ne me souviens pas mais j'ai probablement "résolu" mes problèmes de cette façon). –