Java AWT: Dialog

Willemers Informatik-Ecke

Wie unter allen GUIs dient ein Dialog einer kurzzeitigen Anfrage an den Benutzer. Auch Java kennt modale und nicht-modale Dialoge. Der nicht-modale verhält sich eher wie ein Fenster, während der modale Dialog den Anwender nichts anderes tun läßt was außerhalb des Dialogs liegt. Um einen Dialog zu erstellen, wird eine Klasse geschrieben, die sich von Dialog herleitet. Im Konstruktor werden die Elemente, die in den Dialog gehören, erstellt und angeordnet. Wird die Klasse auch als ActionListener implementiert, werden hier auch die Ereignisse gefangen. Wichtig sind hier die Memberfunktion actionPerformed für die Bearbeitung der Ereignisse und die processEvent, um den Dialog zu schließen. Dazu muss zu Anfang enableEvents aufgerufen werden.

import java.awt.*;
import java.awt.event.*;

public class InfoDialog extends Dialog implements ActionListener 
{
    
    InfoDialog(Frame myFrame, String title)
    {
        super(myFrame, title, true);
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);

        add("Center", new Label("(C) Arnold Willemer 2000"));
        Button Ok = new Button("OK");
        Ok.addActionListener(this);
        Ok.setActionCommand("ok");
        add("South", Ok);
        pack();
    }
    public void actionPerformed(ActionEvent event) {
    	  setVisible(false);
    }
    public void processEvent(AWTEvent e) {
        if (e.getID() == Event.WINDOW_DESTROY) {
            dispose();
        } else {
            super.processEvent(e);
        }
    }
}

Die Superklasse Dialog hat den folgenden Konstruktor:

Dialog meinDialog = new Dialog(meinFrame, "Balkentitel des Dialogs", true);

Der erste Parameter ist der Frame, aus dem der Dialog gestartet wurde, der zweite der Balkentitel und der letzte Parameter gibt an, daß der Dialog modal sein soll. Gezeigt wird der Dialog, sobald die Memberfunktion show() angewendet wird.


Homepage - Java (C) Copyright 2000 Arnold Willemer