SingleFrameApplication - Exit/Quit/Shutdown

hesk

Erfahrenes Mitglied
Hallo!

Ich versuche gerade das Verhalten von SingleFrameApplications beim schließen zu verstehen.

Wenn man in Netbeans per Wizard eine Desktop-Application macht, dann wird ein Menüeintrag "Exit" hinzugefügt.

Im code sieht das so aus:
Code:
exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
        exitMenuItem.setName("exitMenuItem"); // NOI18N
        fileMenu.add(exitMenuItem);
Leider kann ich im .properties-File keinen Eintrag zu "quit" oder "exitMenuItem" finden. Woher nimmt er die Information wie der Text lauten soll oder die shortDescription?
Weiters, ist die Action "quit" nicht definiert. Woher kennt er sie?

Wenn ich das Programm beende würde ich gern noch einige Sachen machen(paar Dinge speichern). Laut Doku(http://java.sun.com/developer/technicalArticles/javase/swingappfr/) kann
man dies in der Shutdown-Methode. Aber wann wird diese aufgerufen?
Was muss ich in meinem FrameView aufrufen damit shutdown gecalled wird und das Programm sich beendet?

Ich hoffe jemand kann mir dies ausführlich erklären. Würde es gerne verstehen:)

Danke!
 
Wenn das Programm normal beendet wird, werden alle ShutdownHooks ausgeführt. Registriert werden ShutdownHooks mit
Java:
 Runtime.getRuntime().addShutdownHook(Thread notStartedThread);
wobei der Thread dann beim Beenden des Programmes gestartet wird.

Mehr Infos dazu:
http://j2eefolks.blogspot.com/2008/03/do-you-know-java-shutdown-hook.html
Wichtig ist allerdings, dass du da so wenig Code reinpackst wie möglich. Üblicherweise werden Programme nach einer gewissen Zeit vom Betriebssystem abgewürgt, wenn sie nicht auf das "Beenden"-Signal reagieren. Bei Datenübertragung im Netzwerk oder Schreiben auf langsame Festplatten kommt man da schnell drüber! Besonders dann, wenn der Benutzer sich abmeldet/das Betriebssystem herunter gefahren wird und mehrere Programme gleichzeitig beendet werden.
 
Danke.

Ich habe nun auch rausgefunden dass es die Methode "exit()" im FrameView gibt.
Diese ruf automatisch das shutdown auf.

Die resourceMap holt sich für die Resource "exitMenuitem" automatisch den Text "Exit" und den Accelerator "STRG+Q". Diese kann man im .propertie-File überschreiben.

Mich würde jetzt noch interessieren welche "Standard-Resourcen" es noch gibt?
 
SingleFrameApplication - Exit/Quit/ ...

Hallo,

meinst du welche Texte und sowas noch in properties-Dateien gesetzt sind?
Das kannst du einfach nachschauen. Entpacke einfach die bsaf.jar und schau in die Properties-Dateien. Kann auch sein, dass die Jar etwas anders heißt. Netbeans nutzt ja das (Better)Swing-Application-Framework.

Gruß

Sascha
 
Ich entwickle unter Eclipse. Gui-Builder mag ich nicht:)

Hab das Property-File in appframework-1.0.3.jar gefunden.
Danke!
 
SingleFrameApplication - Exit/Quit/ ...

Ah ok. Du hast oben Netbeans erwähnt, deshalb dachte ich du nutzt es auch. Man kann übrigens bei Netbeans auch nicht den GUI-Builder nutzen. ;-)

Gruß

Sascha
 
Zurück