java swing Fenster schließen, ohne die App zu beenden

7

Ich habe einen kleinen Rahmen, wo ich Benutzer & amp; Passwort. Dieser Rahmen wird durch Klicken auf eine Schaltfläche in einem Hauptfenster geöffnet.

Dann habe ich zwei Tasten: ok und abbrechen.

Wenn ich auf "Abbrechen" klicke, muss ich diesen Rahmen schließen, ohne die App zu beenden.

Wie kann ich das tun?

    
Giancarlo 21.02.2009, 16:30
quelle

8 Antworten

18

Sie können entweder Frame.hide () oder Frame.dispose () verwenden. Ich würde auch empfehlen, in JDialog oder JOptionPane

zu schauen

Korrektur: hide () ist veraltet. SetVisible (false) sollte stattdessen verwendet werden

    
Itay Maman 21.02.2009, 16:31
quelle
3

Sie können setVisible (false) für den Rahmen aufrufen.

Sie können setDefaultCloseOperation auch für den Rahmen aufrufen, der in HIDE_ON_CLOSE übergeben wird (Informationen hier: Ссылка ). Dadurch wird verhindert, dass die App entfernt wird, wenn der Benutzer das "X" auf dem JFrame zum Schließen drückt.

    
TofuBeer 21.02.2009 16:31
quelle
3

Vielleicht ist ein saubererer Weg, einfach die setDefaultCloseOperation von EXIT_ON_CLOSE zu DISPOSE_ON_CLOSE zu ändern:

%Vor%     
aleroot 07.09.2011 07:13
quelle
3

Verwenden Sie this.dispose(); in der Action-Listener-Methode, wenn der Benutzername / das Passwort erfolgreich ist. zB:

%Vor%

Wenn Sie innere Klassen verwenden, um die Ereignisse zu behandeln Ersetzen Sie einfach 'this.dispose ()' durch Super_Class_Name.this.dispose ();

    
Alan 19.10.2011 14:10
quelle
2

Stellen Sie sicher, dass Sie nicht:

%Vor%     
jedierikb 21.02.2009 16:35
quelle
2
Die Methode

setVisible gibt keine Speicherressourcen frei und sollte nur verwendet werden, wenn das Formular erneut verwendet werden soll.

Die Methode dispare Gibt alle nativen Bildschirmressourcen frei, die von diesem Fenster, seinen Unterkomponenten und allen zugehörigen untergeordneten Elementen verwendet werden. Das bedeutet, dass die Ressourcen für diese Komponenten zerstört werden. Der von ihnen verbrauchte Speicher wird an das Betriebssystem zurückgegeben und als nicht wiedergabebereit markiert.

    
Edgard Leal 10.01.2013 12:13
quelle
1

Mache eine Funktion in der äußeren Klasse, in der du JFrame implementierst (du musst schließen, wenn du den Abbrechen-Button drückst).
Schreibe this.setVisible(false); in die Implementierung dieser Funktion.
Rufen Sie diese Funktion schließlich in der ActionListener -Implementierung auf, wenn Sie sie schließen möchten.

    
Anna 17.08.2011 04:48
quelle
1

Sie können es auf viele Arten tun, aber diese zwei Wege sind am nützlichsten 1. Schreibe this.setVisible(false) in inside implementiert ActionListener
Oder
2. Schreiben Sie this.dispose() in das implementierte ActionListener . Hoffe, das wird dir helfen.

    
Qadir Hussain 21.08.2012 16:55
quelle

Tags und Links