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