8.3.2 | JDialog |
Ein JDialog ist ein Fenster mit Titelzeile, aber ohne Menüleiste. Ein JDialog besitzt immer ein anderes abhängiges Fenster (genannt Parent) und kann modal sein. Ein modaler Dialog verhindert Eingaben in dem aufrufenden Fenster, bis der Dialog beendet wird. Die Modalität kann entweder über einen Parameter beim Konstruktor oder durch den Aufruf der Methode setModal(boolean state) gesetzt werden.
Die Methode setDefaultCloseOperation(int operation) ist bis auf den Verzicht auf JFrame.EXIT_ON_CLOSE identisch mit der aus JFrame.
Aufgrund eines noch in Java 1.4 vorhandenen Bugs ist ein Dialog auf Windows modal gegenüber allen Fenstern der Virtual Machine - nicht nur gegenüber dem aufrufenden Frame. Auf der CD befindet sich hierzu ein Workaround.Material zum Beispiel
- Applet starten
- Quelltexte:
public static void main(String[] argv) { JFrame f = new JFrame("Test"); JMenuBar menuBar = new JMenuBar(); menuBar.add(new JMenu("JFrame")). add(new JMenuItem("Beenden")); f.setJMenuBar(menuBar); JDialog dialog = new JDialog(f, "JDialog", true); menuBar = new JMenuBar(); menuBar.add(new JMenu("Datei")). add(new JMenuItem("Beenden")); dialog.setJMenuBar(menuBar); dialog.setSize(100,50); dialog.setDefaultCloseOperation( WindowConstants.DISPOSE_ON_CLOSE); dialog.setVisible(true); // Hier wird erst weitergemacht, wenn der // Dialog geschlossen wurde (aufgrund der // Modalität System.out.println("Dialog closed"); }