2010-12-09 6 views
1

J'ai un panneau JFrame. Il s'ouvre plusieurs fois. Cependant, je veux que le précédent se ferme, juste avant que le nouveau s'ouvre.Comment fermer JFrame suivi d'un autre JFrame?

Il existe donc un moyen d'ajouter du code impliquant "Fermer ce JFrame quand il y a un trigger pour exécuter le même JFrame".

C'est le même JFrame mais les informations (JTextFields) changent.

En ce moment à travers le programme, où il en est une méthode, un objet appelant à la JFrame:

statusbar sb = new statusbar(); 
     sb.setting(); 

et si j'ai à nouveau cette déclaration, il ouvrira une JFrame au-dessus de celui-ci. mais je veux fermer le précédent. Conserver une variable statique dans votre classe pour l'image en cours qui est affichée.

Répondre

3

Ensuite, dans le constructeur de votre classe, vous vérifiez cette variable. Si ce n'est pas NULL, vous appelez dispose() sur la variable pour fermer le cadre. Votre code pourrait ressembler à:

private static Jframe openFrame; 
... 
... 
if (openFrame != null) 
{ 
    openFrame.dispose(); 
} 

openFrame = this; 

statusbar sb = nouvelle barre d'état();

Utilisez également des conventions de dénomination de classe appropriées. Les mots des noms de classe doivent être en majuscules (c'est-à-dire StatusBar).

+0

Merci ... cela fonctionne parfaitement! – razshan