package javacodebook.gui.dialog; import javax.swing.*; import java.awt.event.*; import java.awt.*; /** * Der Dialog erscheint, wenn versucht wird, über den Schließen-Button vom * Fenster die Anwendung zu beenden. * Da der Dialog modal ist, ist der Frame gesperrt. */ public class DialogJFrame extends JFrame { private String message = "Wollen Sie wirklich die Anwendung beenden?"; private Container content = null; /** * Konstruktor von DialogJFrame. */ public DialogJFrame(String title) { super(title); content = this.getContentPane(); content.setLayout(new FlowLayout()); // Damit das Frame nicht automatisch geschlossen wird beim Klicken des // Schließen-Buttons muss die DefaultCloseOperation geändert werden this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { // showConfirmDialog() öffnet einen Dialog und gibt die // Information welcher Button gedrückt wurde in Form eines int- // Werts zurück int answer = JOptionPane.showConfirmDialog(DialogJFrame.this, message); // Vorgefertigte Konstanten in JOptionPane machen die Abfrage // welcher Button gedrückt wurde einfach if (answer == JOptionPane.YES_OPTION) { System.exit(0); } else if ((answer == JOptionPane.NO_OPTION) || (answer == JOptionPane.CANCEL_OPTION )) { // Dialog schließt sich automatisch und den Focus bekommt wieder // der Frame. } } }); } }