Java tutorial
// TDialog // Copyright (C) by Andrea Carboni. // This file may be distributed under the terms of the LGPL license. // import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JComponent; import javax.swing.JDialog; import javax.swing.JRootPane; import javax.swing.KeyStroke; /** This dialog can be closed by pressing the escape key */ public class TDialog extends JDialog { private boolean bCancel; //--------------------------------------------------------------------------- public TDialog(Frame f, String title, boolean modal) { super(f, title, modal); bCancel = false; addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { bCancel = true; } }); } //--------------------------------------------------------------------------- protected JRootPane createRootPane() { ActionListener al = new ActionListener() { public void actionPerformed(ActionEvent ae) { hide(); bCancel = true; } }; KeyStroke stroke = KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0); JRootPane rootPane = super.createRootPane(); rootPane.registerKeyboardAction(al, stroke, JComponent.WHEN_IN_FOCUSED_WINDOW); return rootPane; } //--------------------------------------------------------------------------- /** Packs the dialog, centers it on its parent, shows it and disposes it on exit */ public void showDialog() { bCancel = false; pack(); setLocationRelativeTo(getParent()); show(); } //--------------------------------------------------------------------------- public void setCancelled() { bCancel = true; } //--------------------------------------------------------------------------- public void clearCancelled() { bCancel = false; } //--------------------------------------------------------------------------- public boolean isCancelled() { return bCancel; } }