/* Listing3110.java */ import java.awt.*; import java.awt.event.*; class YesNoDialog extends Dialog implements ActionListener { boolean result; public YesNoDialog(Frame owner, String msg) { super(owner, "Ja-/Nein-Auswahl", true); //Fenster setBackground(Color.lightGray); setLayout(new BorderLayout()); setResizable(false); //Hinweis im Text beachten Point parloc = owner.getLocation(); setLocation(parloc.x + 30, parloc.y + 30); //Message add(new Label(msg), BorderLayout.CENTER); //Buttons Panel panel = new Panel(); panel.setLayout(new FlowLayout(FlowLayout.CENTER)); Button button = new Button("Ja"); button.addActionListener(this); panel.add(button); button = new Button("Nein"); button.addActionListener(this); panel.add(button); add(panel, BorderLayout.SOUTH); pack(); } public void actionPerformed(ActionEvent event) { result = event.getActionCommand().equals("Ja"); setVisible(false); dispose(); } public boolean getResult() { return result; } } public class Listing3110 extends Frame implements ActionListener { public static void main(String[] args) { Listing3110 wnd = new Listing3110(); wnd.setVisible(true); } public Listing3110() { super("Modale Dialoge"); setLayout(new FlowLayout()); setBackground(Color.lightGray); Button button = new Button("Ende"); button.addActionListener(this); add(button); setLocation(100,100); setSize(300,200); setVisible(true); } public void actionPerformed(ActionEvent event) { String cmd = event.getActionCommand(); if (cmd.equals("Ende")) { YesNoDialog dlg; dlg = new YesNoDialog( this, "Wollen Sie das Programm wirklich beenden?" ); dlg.setVisible(true); //Auf das Schließen des Dialogs warten... if (dlg.getResult()) { setVisible(false); dispose(); System.exit(0); } } } }