java - otro - ¿Cuál es la diferencia entre un JFrame y un JDialog?
jinternalframe (4)
Por qué no podemos usar
setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
paraJDialog
?
Seguro que puede.
Publique su SSCCE que demuestre el problema que está teniendo al usar este valor.
Sin embargo, no puede usar EXIT_ON_CLOSE
para un JDialog
porque ese valor no es compatible, lo que tiene sentido ya que un JDialog
es una ventana "secundaria" o "auxiliar" para su aplicación que está representada por un JFrame
. Cerrar un diálogo no debe cerrar la aplicación.
¿Cuál es la diferencia entre un JFrame
y un JDialog
?
¿Por qué no podemos usar setDefaultCloseOperation(JDialog.EXIT_ON_CLOSE);
para un JDialog?
Hay algunos constructores de JDialog
con un parámetro de owner
que puede ser un Frame
, un Dialog
o una Window
. Un valor no nulo también hace que el JDialog
permanezca por encima de su propietario. Esto es complementario del comportamiento modal descrito por Fortran.
También puede usar setModal(boolean t);
Esto solo funciona en JDialog
. El usuario debe operar en JDialog
no en otra ventana. Si quieren operar ventanas propietarias, deben cerrar este JDialog
.
JFrame
es una ventana normal con sus botones normales (opcionalmente) y decoraciones. JDialog
en el otro lado no tiene botones de maximizar y minimizar y usualmente se crean con métodos estáticos de JOptionPane
, y se ajustan mejor para hacerlos modales (bloquean otros componentes hasta que se cierren).
Pero ambos heredan de Window, por lo que comparten mucha funcionalidad.