Manejo de swing

Solo disponible en BuenasTareas
  • Páginas : 8 (1804 palabras )
  • Descarga(s) : 0
  • Publicado : 11 de mayo de 2011
Leer documento completo
Vista previa del texto
MANEJO DE LOS SWING WINDOWS


Objeto JDialog y JFrame
JDialog es un componente que sirve para presentar diálogos que son ventanas auxiliares que se presentan cuando se registra un evento dentro de un programa, sirven para prevención o en su defecto se puede utilizar para dar información sobre algo, los diálogos que JDialog muestra pueden ser modales o no modales, esto quiere decir que si sonmodales la ventana del diálogo bloquea las entradas a otras ventanas, este tipo de diálogos se pueden hacer también con JoptionPane.
Todos los diálogos dependen de un frame, las modificaciones que se le hagan al frame afectaran a el diálogo, en caso de que el frame sea cerrado, minizado o maximizado, sus diálogos tendrán el mismo comportamiento.

Un objeto JFrame es una ventana más utilizadopara diseñar formularios. Vamos a proceder hacer comparaciones con el objeto JDialog:
Si instanciamos un JFrame en la barra de abajo de windows (creo que se llama "barra de herramientas") nos aparece un nuevo "botoncito" correspondiente a nuestra aplicación. Si instanciamos un JDialog, no aparece nada.
Un JFrame tiene un método setIconImage() para cambiar el icono por defecto de la taza decafé. JDialog no tiene este método.
Un JDialog admite otra ventana (JFrame o JDialog) como padre en el constructor. JFrame no admite padres.
Un JDialog puede ser modal, un JFrame no.

Todo esto nos indica lo siguiente:
Un JFrame debe ser la ventana principal de nuestra aplicación y sólo debe haber una.
Las ventanas secundarias de nuestra aplicación deben ser JDialog.

Losmotivos de esto son los siguientes:
Al mostrar el JFrame un botón en la barra de herramientas de windows y tener método para cambiar el icono, es la ventana ideal como ventana principal de nuestra aplicación y sólo debe haber una. Nos permite cambiar el icono y sólo debe haber un botón en la barra de herramientas de windows para nuestra aplicación.
Si usamos un JDialog como ventana principal, notenemos botón en la barra de herramientas y no hay forma fácil de cambiarle el icono.
Los JDialog son ideales para ventanas secundarias porque admiten una ventana padre. Si la VentanaA es padre del JDialogB, entonces el JDialogB siempre estará por delante de VentanaA, nunca quedará por detrás. Lo ideal es que hagamos nuestras ventanas secundarias como JDialog cuyo padre sea el JFrame principal. Deesta forma los JDialog siempre serán visibles por encima del JFrame y no se irán detrás ni quedarán ocultos por el JFrame.
Otra ventaja de admitir un padre es que heredan el icono de él. Si hemos cambiado el icono del JFrame con el método setIconImage(), entonces todos los JDialog que hagamos como hijos de este JFrame heredarán el icono. Todas las ventanas de nuestra aplicación tendrán el mismoicono en lugar de la taza de café por defecto.

Un JDialog puede ser modal, pasándole un true en el constructor en el sitio adecuado o haciéndolo modal con el método setModal(). Si hacemos un JDialog modal, todas las demás ventanas se deshabilitarán hasta que el usuario de nuestro programa cierre el JDialog. Esto está estupendo para pedir un dato al usuario y evitar que toque otras cosas hastaque haya introducido el dato. Sin embargo, tiene un peligro.
Supongamos un JDialog que lo hacemos modal para pedir unos datos al usuario. Este JDialog tiene un botón de "Aceptar" para que el usuario lo pulse cuando haya terminado de introducir los datos. Supongamos que en el código de ese botón "Aceptar" comprobamos los datos que ha metido el usuario y vemos que son incorrectos. Le sacamos unsegundo JDialog modal para indicarle el error y no cerramos el primero.
¿Quién debe ser el padre de ese segundo JDialog modal?. Si hacemos que el padre sea el JFrame tendremos dos JDialog modales hijos del JFrame, es decir, dos JDialog modales hermanos. Esto nos dará problemas, como que ambas ventanas queden deshabilitadas, que al cerrar una de ellas se nos oculten todas, que parte de la ventana...
tracking img