[Java] Einen modalen Dialog anzeigen

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();