Bestätigung vor Programmende (Java)
Aus Byte-Welt Wiki
Version vom 6. Januar 2008, 10:19 Uhr von L-ectron-X (Diskussion | Beiträge) (Abfragedialog vor Beenden eines Programms)
Häufig kommt es vor, dass man vor Beenden eines Programmes noch Aktionen durchführen möchte. Zum Teil werden dazu Bestätigungen des Benutzers benötigt, die man sich noch vor Programmende einholen kann.
<code=java> import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class WindowClosingDemo extends JFrame {
//Konstruktor public WindowClosingDemo(String title) { super(title); Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); setSize((int)dim.width*60/100, (int)dim.height*60/100); setLocationRelativeTo(null); setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); //Abschalten der Standard-Verhaltens für das Schließen des Fensters //Neues Verhalten für das Schließen des Fensters addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { exit(); } }); JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("Datei"); JMenuItem exitItem = new JMenuItem("Beenden"); exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { exit(); } });
fileMenu.add(exitItem); menuBar.add(fileMenu); setJMenuBar(menuBar); } //Methode zur Anzeige eines Bestätigungsdialoges private void exit() { int result = JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden?", "Programm beenden", JOptionPane.YES_NO_CANCEL_OPTION);
switch(result) { case JOptionPane.YES_OPTION: System.exit(0); //Aktion(en) bei Klicken auf den "Ja-Button"
case JOptionPane.NO_OPTION: //vielleicht ist hier was zu tun, z.B. Datenbank Rollback etc. } }
//Einstiegspunkt in die Applikation public static void main(String[] args) { new WindowClosingDemo("WindowClosingDemo").setVisible(true); }
} </code=java>