Swing Menu->Beenden

infboy

Mitglied
Hi,

ich habe neu angefangen mit java-swing zu programmieren!

Habe ein Hauptfenster mit Menu->Beenden
von da komme ich auf ein yes-no-optionDialog, wo abgefragt wird ob man sich auch sicher ist, dass man das Programm schliessen möchte.

soweit klappt alles.

jetzt weiss ich nicht wie ich das Beenden implementieren soll, sodass:
erstens: das yes-no-optionDialog schliesst
zweitens: das Hauptfenster (beinhaltet Menu->Beenden) schliesst

(also ganz einfach gesagt, sodass alles schliesst und man aus dem Programm rauskommt!)
 

MChrista

Mitglied
Hallo,
du musst einen Menüpunkt erstellen.
anschließend hängst du an diesen ein Event, dass die optionbox aufruft.
in der optionbox machst du dann zwei button. an den beenden button kannst du die action
Java:
System.exit(0);
setzten. dann wird das Programm geschlossen. Bei dem nein button, würde ich einfach
Java:
joptionsbox.setvisible(false);

viel erfolg
 

infboy

Mitglied
also beim:

Java:
 JOptionPane.YES_NO_OPTION,

habe ich für "ja"

Java:
 int conditionExit = JOptionPane.showOptionDialog(frameClose,
						"Möchten Sie das Programm beenden?", "",
						JOptionPane.YES_NO_OPTION,
						JOptionPane.QUESTION_MESSAGE, 
						null, // Benutzt keinen definierten Icon
						options, // Der Titel von dem Button
						options[0]); // Voreinstellung für den Button-Titel
				/*
				 * schlisst das komplette Programm
				 */
				if(conditionExit == 0){
					System.exit(0);
				}

implementiert.

Für "nein" habe ich nichts implementert, aber es tut auch so das was es soll (das Dialog wird geschlossen und man kommt wieder auf das Hauptfenster.)

Kann man das so lassen oder muss da unbedingt "dispose" implementiert werden?
 

KrokoDiehl

Top Contributor
Hallo.
Ich möchte ergänzen, dass
Code:
System.exit()
ein hartes Beenden der Anwendung (des Prozesses) ist. Bei ordentlicher Programmierung von Swinganwendungen genügt es alle Fenster (Frames) via
Code:
dispose()
freizugeben. Wenn dies passiert ist (... und auch alle anderen nicht-daemon Threads beendet sind, aber das nur am Rande), dann wird die VM ebenfalls beendet.

Ich habe ein Beispiel angefügt, das genau so arbeitet.

Java:
public final class SwingExample {

    private static void onClose(JFrame frame) {
        int choice = JOptionPane.showConfirmDialog(
                frame, "Wirklich beenden?", "Frage", 
                JOptionPane.YES_NO_OPTION,  
                JOptionPane.QUESTION_MESSAGE);
        if (choice == JOptionPane.YES_OPTION) {
            frame.dispose();
        }
    }
    
    public static void main(String[] args) {
        final JFrame frame = new JFrame("Test");
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent event) {
                SwingExample.onClose(frame);
            };
        });
        
        JMenu menu = new JMenu("Datei");
        menu.add(new AbstractAction() {
            {
                putValue(NAME, "Beenden");
            }
            @Override
            public void actionPerformed(ActionEvent event) {
                SwingExample.onClose(frame);
            }
        });
        
        JMenuBar menubar = new JMenuBar();
        menubar.add(menu);
        
        frame.setJMenuBar(menubar);
        
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Lukas2904 Kontext Menu AWT, Swing, JavaFX & SWT 2
D JavaFX Menu soll nicht bei jedem Click verschwinden AWT, Swing, JavaFX & SWT 8
H Swing Menu Bar AWT, Swing, JavaFX & SWT 7
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
F Popup Menu etwas verschieben AWT, Swing, JavaFX & SWT 2
J Probleme mit contex Menu (javafx) AWT, Swing, JavaFX & SWT 1
S Manuelles Menu in Swing AWT, Swing, JavaFX & SWT 3
B JavaFX Menu Ribbon AWT, Swing, JavaFX & SWT 2
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
X JMenu Menu-Bar ausrichtung ändern im Programm AWT, Swing, JavaFX & SWT 0
A Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen AWT, Swing, JavaFX & SWT 2
V Eclipse View Right-Click Menu hinzufügen AWT, Swing, JavaFX & SWT 2
I Menu mit Swing AWT, Swing, JavaFX & SWT 30
lumo SWT Shell & Menu AWT, Swing, JavaFX & SWT 2
H shell in view implementieren; menu mit keystroke unterlegen AWT, Swing, JavaFX & SWT 8
S Dropdown menu / tree AWT, Swing, JavaFX & SWT 7
H JPanel/Menu AWT, Swing, JavaFX & SWT 14
M Pie Menu AWT, Swing, JavaFX & SWT 6
R Menu-Fenster - Teile von Fenster tauschen AWT, Swing, JavaFX & SWT 3
M Problem mit eigenem Menu Explorer AWT, Swing, JavaFX & SWT 6
G Rechtsklick-Menu bei JTable AWT, Swing, JavaFX & SWT 4
L Frage zu Erstellung des Menu mit JFace AWT, Swing, JavaFX & SWT 2
G Menu Vorlage gesucht. AWT, Swing, JavaFX & SWT 4
B Menu aktualisieren AWT, Swing, JavaFX & SWT 2
S Parent eines Menu-Eintrages ermitteln? AWT, Swing, JavaFX & SWT 3
J java menu+button problem AWT, Swing, JavaFX & SWT 6
G JButton als Basis für Menu AWT, Swing, JavaFX & SWT 2
G AnfängerSWING Frage Werkzeugleiste unter dem Menu AWT, Swing, JavaFX & SWT 3
L Popup-Menu AWT, Swing, JavaFX & SWT 2
L Menu Position verändern? AWT, Swing, JavaFX & SWT 24
G Dialog aus Menu AWT, Swing, JavaFX & SWT 3
I [Java 6] Tray-Menu und Bilder? AWT, Swing, JavaFX & SWT 3
G ActionListener vom Menu zu JPanel AWT, Swing, JavaFX & SWT 4
N Menu Problem AWT, Swing, JavaFX & SWT 3
C PullDown Menu AWT, Swing, JavaFX & SWT 2
J Darstellungsfehler Menu AWT, Swing, JavaFX & SWT 2
G menu wird verdeckt AWT, Swing, JavaFX & SWT 4
L Internationalisierung mittels ResourceBundle und Menu HotKey AWT, Swing, JavaFX & SWT 6
C JTable in Fenster anzeigen (über Menu) AWT, Swing, JavaFX & SWT 5
M Menu AWT, Swing, JavaFX & SWT 2
R Eine Art DropDown-Menu für JAVA? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben