import java.awt.*; import java.awt.event.*; // A dialog box that asks the user to confirm the File | Exit // choice public class QuitDialog extends Dialog { Label label1; Panel panel1; Button okButton; Button cancelButton; public QuitDialog(Frame parent, boolean modal) { super(parent, modal); setTitle("Last Chance"); setLayout(new BorderLayout(0,0)); setVisible(false); setSize( 150, 100 ); label1 = new Label("Do you really want to quit?",Label.CENTER); add("Center", label1); panel1 = new Panel(); panel1.setLayout(new FlowLayout()); add("South", panel1); okButton = new java.awt.Button(); okButton.setLabel(" Ok "); panel1.add(okButton); cancelButton = new java.awt.Button(); cancelButton.setLabel("Cancel"); panel1.add(cancelButton); this.addWindowListener( new MyWindowAdapter() ); ButtonListener buttonListener = new ButtonListener(); cancelButton.addActionListener(buttonListener); okButton.addActionListener(buttonListener); } // The following two classes are inner classes. // This class listens for window related events. It extends // java.awt.event.WindowAdapter, which provides empty "stub" // implementations for each method in the interface // java.awt.event.WindowListener. class MyWindowAdapter extends WindowAdapter { public void windowClosing(WindowEvent event) { dispose(); } } // Since this class listens for events from two classes (buttons), // it uses the getSource() method to find out which button // sent the event message. class ButtonListener implements ActionListener { public void actionPerformed(ActionEvent event) { Object object = event.getSource(); if (object == cancelButton) // remove the dialog from the screen QuitDialog.this.dispose(); else // Send a window closing event to the parent of the // dialog box, i.e. the main application window. Toolkit.getDefaultToolkit().getSystemEventQueue(). postEvent(new WindowEvent((java.awt.Window)getParent(), WindowEvent.WINDOW_CLOSING)); } } }