23 noviembre 2005

JFrame y JDialog

¿Qué diferencia hay entre un JFrame y un JDialog? ¿Cuando usar uno u otro?.

Teóricamente, en una aplicación debe haber un único JFrame, que es la ventana principal de la aplicación.

En windows, el JFrame aparece además de como ventana, en la barra de tareas. El JDialog no aparece. Si queremos que nuestra aplicación apareezca en dicha barra y sólo aparezca una vez, debemos usar un único JFrame, correspondiente a la ventana principal de nuestro programa.

Al JFrame además podemos llamar al método setIconImage(), para hacer que el icono de la taza de café propio de java cambie por el icono que nosotros queramos.

El resto de las ventanas de nuestra aplicación deberían ser JDialog. Estos JDialog no aparecen en la barra de tareas y además, en el constructor, se les puede pasar un padre. Al pasarles un padre, siempre se visualizarán delante del padre. Si les pasamos como padre el JFrame de nuestra aplicación, siempre saldrán encima de él y no se iran detrás. Una ventaja adicional de pasarles como padre el JFrame es que heredan de él el icono que pusimos con setIconImage(). El JDialog no tiene este método y la única forma de cambiar la taza de café es pasarle como padre otra ventana que tenga el icono cambiado.

No hay comentarios: