2010-12-09 18 views
1

Ich habe ein JFrame-Panel. Es öffnet sich mehrmals. Ich möchte jedoch die vorherige schließen, kurz bevor die neue geöffnet wird.Wie schließe ich JFrame gefolgt von einem anderen JFrame?

So gibt es eine Möglichkeit, einen Code hinzuzufügen, der "Schließen Sie diesen JFrame, wenn es einen Trigger gibt, um den gleichen JFrame auszuführen."

Es ist derselbe JFrame, aber die Information (JTextFields) ändert sich.

Gerade jetzt durch das Programm ab, wo immer gibt es ein Verfahren, Objekt für die JFrame Aufruf:

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

und wenn ich diese Aussage wieder habe, wird es eine weitere JFrame auf ihn öffnen. aber ich möchte den vorherigen schließen.

Antwort

3

Behalten Sie eine statische Variable in Ihrer Klasse für das aktuelle Bild, das angezeigt wird. Dann überprüfen Sie diese Variable im Konstruktor Ihrer Klasse. Wenn es nicht null ist, rufen Sie dispose() für die Variable auf, um den Rahmen zu schließen. Code könnte etwa so aussehen:

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

openFrame = this; 

statusbar sb = new statusbar();

Verwenden Sie auch korrekte Klassenbenennungskonventionen. Wörter von Klassennamen sollten groß geschrieben werden (zB. StatusBar).

+0

Danke ... es funktioniert perfekt! – razshan