web-dev-qa-db-de.com

Was ist der Unterschied zwischen einem JFrame und einem JDialog?

Was ist der Unterschied zwischen einer JFrame und einer JDialog?

Warum können wir setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE); nicht für einen JDialog verwenden?

26
Mahdi_Nine

JFrame ist ein normales Fenster mit seinen normalen Schaltflächen (optional) und Dekorationen. JDialog auf der anderen Seite hat keine Schaltflächen zum Maximieren und zum Minimieren und wird normalerweise mit statischen JOptionPane-Methoden erstellt.

Beide erben jedoch von Window, daher teilen sie sich viele Funktionen.

26
fortran

Warum können wir setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE); nicht für JDialog verwenden?

Sicher kannst du.

Veröffentlichen Sie Ihr SSCCE , das das Problem aufzeigt, das Sie bei der Verwendung dieses Werts haben.

Sie können jedoch EXIT_ON_CLOSE nicht für eine JDialog verwenden, da dieser Wert nicht unterstützt wird, was sinnvoll ist, da eine JDialog ein "Kind" - oder "Helfer" -Fenster für Ihre Anwendung ist, das durch eine JFrame dargestellt wird. Beim Schließen eines Dialogs sollte die Anwendung nicht geschlossen werden.

5
camickr

Es gibt einige JDialog-Konstruktoren mit einem owner-Parameter, der Frame, Dialog oder Window sein kann. Bei einem Wert ungleich Null bleibt der JDialog über seinem Besitzer. Dies ist eine Ergänzung des von Fortran beschriebenen modalen Verhaltens.

1

Sie können auch setModal(boolean t);.__ verwenden. Dies funktioniert nur bei JDialog. Der Benutzer muss mit JDialog und nicht mit einem anderen Fenster arbeiten. Wenn Sie Eigentümerfenster bedienen möchten, müssen Sie diese JDialog herunterfahren.

0
Ryan