Voraussetzung für die Nutzung eines modalen Dialoges ist die Nutzung eines JDialog. Folgende Eigenschaften sollten gesetzt sein:
- defaultCloseOperation = DISPOSE
- modal = true
- modalityType = APPLICATION_MODAL
- Form Size Policy = Generate Resize Code
- Generate Size = true
- Generate Center = true
Innerhalb des Dialog-Codes sollte folgende Funktion definiert werden:
/** * globale Variable, die den Status des Modaldialoges zurückgibt */ private int iDialogResult; /** * Dialog anzeigen, auf Abarbeitung warten und iDialogResult zurückgeben * @return int-Status */ public int showDialog() { // Code-Abarbeitung hält hier an, // bis Button "Ok" geklickt wurde this.setVisible(true); // nach Klick auf Button "Ok" springt die // Methode hier mit dem iDialogResult raus return iDialogResult; } /** * Methode des Ok-Buttons */ private void btnOkActionPerformed(java.awt.event.ActionEvent evt) { // iDialogResult setzen if ( ... ) { iDialogResult = 0; } else { iDialogResult = 1; } // Dialog ausblenden this.setVisible(false); // Dialog zerstören und automatisch zurück // zur Abarbeitung von showDialog() springen this.dispose(); }
Der Aufruf des Dialoges muss wie folgt aussehen:
// Dialogobjekt erzeugen DialogClassName dlg = new DialogClassName(this, true); // auf DialogResult blockierend warten, bis Dialog geschlossen wird int result = dlg.showDialog();