Componentes y Ventanas de Java Swing

Vamos a hacer hoy una revisión básica de cuáles son los principales componentes que nos podemos encontrar en Java Swing. Muchos de vosotros no le veréis mucha utilidadad a este repaso. Y es cierto que Java Swing ya no se utiliza en la creación de nuevas aplicaciones. Sin embargo, en nuestra vida laboral (40 años dan para mucho) es muy probable que, tarde o temprano, nos encontremos con un proyecto clásico que esté implementado utilizando sus librerías. Así que nunca está de más tener un lugar al que recurrir para consultar los diferentes tipos de objetos (componentes y ventanas) que nos podemos encontrar en Java Swing.



Mencionar que lo que veremos a continuación no pretende ser una revisión exhaustiva de todos los tipos de objetos que nos podemos encontrar en Java Swing. Prefiero centrarme en mencionar aquellos componentes que se utilizan con mayor asiduidad y que, por tanto, son los que tenemos más probabilidad de encontrar en un proyecto clásico.


Componentes y Ventanas de Java Swing


En primer lugar, hay que mencionar que los objetos Java Swing se dividen en dos grupos principales (y ambos heredan de la clase Container):


* Objetos Ventana: pertenecen a la clase Window. Son los objetos básicos que nos permiten generar las ventanas sobre los que se irán disponiendo los diferentes componentes de la aplicación visual.

* Objetos Componente: pertenecen a la clase JComponent. Son los distintos objetos que nos permitirán ir elaborando diferentes estructuras que se mostrarán de forma visual al usuario: botones, listas, menús, cajas, etc... 


Hay que puntualizar que la clase JComponent se creó en Java 2 y se incluyó en la librería Java Swing (javax.swing). En cambio, la clase Window se implementó en Java 1 y pertenece a la librería Java AWT (java.awt). Sin embargo, sí que se crearon objetos Ventana en Java Swing equivalentes a los que ya existían previamente en Java AWT.


Para distinguir los objetos Java Swing de los Java AWT, observaremos que en la librería javax.swing todas las clases comienzan por la letra J. Por ejemplo, en AWT teníamos los objetos Frame y Dialog, mientras que en Java Swing tendremos los objetos JFrame y JDialog. Teniendo en cuenta dicha nomenclatura, no nos resultará difícil distinguir unas clases de otras.


Objetos Ventana de Java Swing


Los principales objetos Ventana (clase Window) que nos podemos encontrar en Java Swing son los siguientes:

* JFrame: conocida como Marco, se muestra visualmente como una ventana en pleno funcionamiento con su título y con sus iconos.

* JDialog: se puede considerar como una ventana emergente que aparece cuando se debe mostrar un mensaje. No es una ventana completamente funcional como el Marco.


Objetos Componente de Java Swing


Los principales objetos Component (clase JComponent) que nos podemos encontrar en Java Swing son los siguientes:

* JPanel: es un contenedor puro y no es una ventana en sí misma. El único propósito de un Panel es organizar los componentes en una ventana.

* JScrollPane: Nos permite establecer un Panel con scrolls (tanto horizontal como vertical) en el que podemos ir almacenando componentes. 

* JTextField: permite mostrar un campo texto dentro de un panel determinado.

* JTextArea: permite mostrar un área de texto.

* JTextPane: permite mostrar un panel de texto. 

* JOptionPane: permite mostrar una ventana emergente con un cuadro de diálogo.

* JLabel: sirve para añadir una etiqueta de texto sobre el panel indicado.

* JScrollBar: sirve para mostrar una barra de scroll asociada a una determinada área de texto.

* JComboBox: muestra un campo sobre el que se despliega una lista de opciones disponibles. El usuario podrá seleccionar una de dichas opciones.

* JList: muestra una caja con una serie de elementos String, donde el usuario podrá seleccionar uno de ellos. A diferencia del JComboBox, en el JList todos los elementos de la caja son visibles en todo momento.

* JMenuBar: permitirá mostrar una barra de menús al usuario.

* JMenu: permitirá mostrar al usuario un Menú con una serie de opciones. Estos menús deberán estar incluidos dentro de una Barra de menús (JMenuBar).

* JPopupMenu: sirve para mostrar un Menú emergente al usuario.

* JMenuItem: permite mostrar una opción de menú al usuario. Por supuesto, estas opciones deberán estar incluidas dentro de un Menú determinado (JMenu).

* JButton: permite mostrar un botón sobre el panel seleccionado.

* JCheckBox: muestra un cuadrito que podrá ser marcado con un check o dejado en blanco. Se utiliza para que el usuario marque opciones que no son obligatorias.

* JRadioButton: muestra una lista de opciones que son excluyentes entre sí. El usuario tendrá que seleccionar una de ellas y dejar las demás sin marcar.

* JToolBar: permite mostrar una Barra de herramientas sobre un panel determinado.

* JSlider: muestra una barra con una señal superpuesta. La señal podrá desplazarse sobre la barra en un sentido u otro, de manera que servirá para que el usuario indique un valor concreto dentro de la escala mostrada en la barra. 

* JSpinner: muestra un cuadro de texto junto al que aparecerán dos flechitas selectoras de sentido inverso. Pulsando una de las flechitas, el usuario podrá ir incrementando el valor mostrado en el cuadro de texto. Obviamente, pulsando la otra flechita, el valor se irá decrementando.

 

Jerarquía de Componentes Swing

 

Para que nos quedamos con una idea más global de cómo están relacionados los componentes Swing entre sí, podemos echar mano de la siguiente jerarquía.

 


 

Tal y como dijimos más arriba, en esta jerarquía se aprecia que todos los componentes Swing son hijos de la clase JComponent. Adicionalmente, también se pueden visualizar las peculiaridades de las clases JMenuItem o de JTextComponent, entre otras...

 

En principio, con lo comentado en el post de hoy, ya deberíamos tener una visión clara de cuáles son los principales Componentes y Ventanas con los que podemos trabajar en Java Swing. Obviamente, hay muchos más componentes a nuestra disposición, pero los mencionados anteriormente nos servirán para elaborar los bloques de construcción de cualquier aplicación que no requiera estructuras demasiado complejas. Además, tengamos en cuenta que hablamos de una tecnología con muchos años de recorrido y que, por tanto, es poco probable que caigamos en un proyecto donde haya que elaborar una aplicación Java Swing desde cero.


Pues nada, eso es todo lo que quería comentar sobre los componentes básicos de Java Swing. Ahora vosotros decidís si os quedáis aquí o seguís profundizando en el tema. Por supuesto, cualquier duda al respecto, podéis dejármela aquí abajo...

Saludos.


Comentarios

Entradas populares de este blog

Creación de Webservice SOAP básico

Eliminar duplicados de una Lista en Java