JFrame y JDialog

Publicado el 18 agosto 2013 por Cristian David Henao Hoyos @chenaooo
Para dar inicio a el primer articulo sobre componentes Java Swing, vamos a trabajar con la base de toda interfaz gráfica........ Las Ventanas. En esta entrada veremos simplemente como construir ventanas usando los componentes JFrame y JDialog, conoceremos en términos generales en que se diferencian y cual es la forma de crearlos....
Tal como se mencionó en la entrada anterior, cuando vamos a construir aplicaciones con Java Swing debemos tener al menos un contenedor, este sera el tapiz donde pintaremos el conjunto de componentes que arman las interfaces, para eso podemos usar un JFrame o un JDialog (Aunque también se pueden usar Applets).
JFrame o JDialog?
Estos componentes hacen parte del paquete javax.swing, básicamente nos permiten crear Ventanas para nuestras aplicaciones y en ellas alojar otros componentes para darle cuerpo a la interfaz de usuario, en si tienen comportamientos similares y a simple vista pueden parecer iguales, pero son componentes distintos.

Un JFrame permite crear una ventana de Windows con ciertas características, por ejemplo podemos visualizarla en nuestra barra de tareas, caso contrario de los JDialog, ya que estos últimos son Ventanas de Dialogo con un comportamiento diferente, no se puede ver la ventana en la barra de tareas ni posee los botones comunes de maximizar o minimizar....Los JDialog pueden ser hijos de JFrames o de otros JDialog mientras que los JFrame no (Como así Hijos?), es decir, si tenemos claros conceptos de programación Orientada a Objetos podemos relacionar esto de Hijos con el concepto de Herencia (Aunque no directamente, es mas a nivel conceptual), con estos componentes podemos hacer que una Ventana sea Padre de otra Ventana de tipo JDialog, asignándole algún tipo de comportamiento o dejando la ventana padre como Principal.

Es recomendable cuando trabajemos con GUI's crear un único JFrame para toda la aplicación y el resto de ventanas podemos trabajarlas como JDialog ya que de esa manera evitamos que se creen varias ventanas independientes y en vez de eso otras dependientes de la principal.

Podemos encontrar muchas consideraciones sobre estos componentes pero lo anterior es básicamente lo que necesitamos saber en términos generales.............veamos su implementación.


JFrame.
Como se mencionó anteriormente debemos tener un contenedor, para esto utilizaremos la clase Container, esta sera la encargada de "alojar" los componentes que queremos mostrar en la ventana (botones, labels, cajas de texto etc...)

Creamos la clase VentanaPrincipal, esta Hereda de JFrame, posteriormente declaramos el Objeto Contenedor y luego lo instanciamos mediante el método getContentPane();

public class ClaseFrame extends JFrame 
{
private Container contenedor;
public VentanaPrincipal()//constructor
{
contenedor=getContentPane();
contenedor.setLayout(null);
//Asigna un titulo a la barra de titulo
setTitle("CoDejaVu : Titulo De La ventana");
//tamaño de la ventana
setSize(400,200);
//pone la ventana en el Centro de la pantalla
setLocationRelativeTo(null);
}
}

La clase anterior crea una Ventana Vacía, es importante tener muy claro que JFrame también es una clase de la cual se debe heredar para crear nuestras ventanas......
JDialog.
Un JDialog se construye de la misma manera que un JFrame la única diferencia es que hereda de la Clase JDialog...... como se mencionó anteriormente básicamente son ventanas pero tienen ciertas diferencias, la mas notoria es que no posee los botones básicos de las ventanas ni pueden ser visualizados en la barra de tareas...
public class VentanaConfirmacion extends JDialog
{
private Container contenedor;
public VentanaConfirmacion(){
contenedor=getContentPane();
contenedor.setLayout(null);
//Asigna un titulo a la barra de titulo
setTitle("CoDejaVu : Titulo Del JDialog");
//tamaño de la ventana
setSize(300,200);
//pone la ventana en el Centro de la pantalla
setLocationRelativeTo(null);
}
}

Igual que El anterior, este código crea una ventana de dialogo Vacía, se llaman de dialogo por las características mencionadas que la diferencian de una ventana normal.
Si ejecutamos las 2 clases veremos estas diferencias.

Como vemos lo principal en estos momentos es que la ventana que hereda de JFrame tiene los botones básicos de toda ventana, a demás permite su visualización en la barra de tareas, mientras que la ventana que hereda de JDialog no posee estas características.

Y Listo!!!, la intención de esta entrada es Mostrar lo que necesitamos saber sobre estos componentes, en un próximo articulo veremos un ejemplo simple del como usarlos, donde las diferencias mencionadas serán mas notorias ;)

También te podría Interesar.

  • Que es Java Swing?
  • Ejemplo de Polimorfismo.
    Conceptos Básicos de Programación Orientada a Objetos.  
  • Ejecutar Tareas En Jenkins
  • Instalación Jenkins en Windows.
  • Opciones de Seguridad en Jenkins
  • Instalación JDK
  • Leer Archivo Properties en Java
  • Tutorial Proyecto Web Con Eclipse
¿Hay algo que quieras anexar o comentar sobre esta entrada?  no dudes en hacerlo.....y si te gustó, te invito a compartir ;)