Quelle est la différence entre un JFrame et un JDialog?
Quelle est la différence entre un JFrame
et JDialog
?
Pourquoi ne pouvons-nous pas utiliser setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
pour un JDialog?
4 réponses
JFrame
est une fenêtre normale avec ses boutons normaux (en option) et décorations. JDialog
de l'autre côté n'a pas de boutons maximize et minimize et sont généralement créés avec JOptionPane
les méthodes statiques, et sont mieux adaptées pour les rendre modales (ils bloquent les autres composants jusqu'à ce qu'ils soient fermés).
mais les deux héritent de Window, donc ils partagent beaucoup de fonctionnalités.
pourquoi nous ne pouvons pas utiliser
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
JDialog
?
bien Sûr, vous pouvez.
Post SSCCE cela démontre le problème que vous avez en utilisant cette valeur.
Toutefois, vous ne pouvez pas utiliser EXIT_ON_CLOSE
JDialog
parce que cette valeur n'est pas supportée ce qui a du sens depuis un JDialog
est une fenêtre" enfant "ou" helper " pour votre application qui est représentée par un JFrame
. Fermer un dialogue ne doit pas fermer application.
Il y a quelques JDialog
les constructeurs avec un owner
paramètre qui peut être un Frame
, un Dialog
et Window
. Une valeur non nulle fait aussi JDialog
rester au-dessus de son propriétaire. Ceci est complémentaire du comportement modal décrit par Fortran.
vous pouvez aussi utiliser setModal(boolean t);
Cela ne fonctionne que sur JDialog
. L'utilisateur doit utiliser JDialog
pas autre fenêtre. S'ils veulent faire fonctionner les fenêtres des propriétaires, ils doivent fermer ça JDialog
.