Introducción
En esta unidad se presenta la API Swing de Java que proporciona herramientas para la construcción de interfaz gráfica de usuario que utilice imágenes y objetos gráficos (ventanas, iconos, textos, etiquetas, botones, listas, menús), para representar la información y acciones para evaluar los eventos con los que interactuar el usuario.
También se hace la introducción al diseñar profesional para interfaz gráfica que proporciona un conjunto de plugins que permite crear interfaces gráficas de usuario utilizando los componentes de la librería swing.
Propósitos de aprendizaje
Propósito General
Conocer los principios del diseño de interfaces gráficas de usuario (GUI)
Propósitos Específicos
- Conocer los principios del diseño de interfaces gráficas de usuario (GUI).
- Programar interfaces gráficas de usuario en un lenguaje de programación de alto nivel y utilizando una API específica.
La API de Java para desarrollo de GUI
API del inglés: Application Programming Interface, (Interfaz de programación de aplicaciones), es una biblioteca de clases que ofrece la programación orientada a objetos para ser utilizada por otras aplicaciones como una capa de abstracción para el desarrollo de aplicaciones que incorporan interfaz gráfica de usuario (GUI).
Contenedores
Java swing proporciona una serie de contenedores que son útiles a la hora de construir aplicaciones con GUI, entre los que se encuentran JFrame, Jpanel y JDesktop pane.
Estos contenedores son utilizados para adicionar componentes como JButton, JLabel, JPanel, entre otros, que permiten a un usuario interactuar con los datos.
Contenedores
Formularios y Paneles
Un formulario es una ventana que a su vez puede contener varios objetos; pueden ser campos de datos, etiquetas, botones, etc. Los formularios son diseñados para que el usuario introduzca datos y los envié a la base de datos para ser almacenados, a su vez el formulario recibe información de la base de datos y se la presenta al usuario.
Un panel es un contenedor simple que no tiene GUI y generalmente es opaco pero que puede cambiar su estado cuando está configurado como fondo. La finalidad de un panel es agrupar objetos como botones, campos de texto, etiquetas etc. Ejemplo cuando queremos activar o desactivar un grupo de botones a la vez, en lugar de hacerlo uno por uno.
A continuación se presenta un ejemplo de cada uno. Estudiémoslos. |
Contenedores
Layout - Manejadores de posición
Los Layouts managers o manejadores de composición se utilizan para posicionar y organizar los diferentes componentes que se adicionan a una venta o un panel. Especifican la apariencia que tendrán, controlando su tamaño y posición dentro del contenedor de modo que sea más sencillo de añadirlos, eliminarlos o cambiar su posición.
Componentes
El API Java Swing proporciona una serie de clases que representa de forma gráfica una entrada de datos o una acción específica en una interface gráfica de usuario.
Gestión de eventos
Los eventos son las acciones que puede ejecutar el usuario. Al realizar un evento se produce una serie de acciones.
Cada vez que un usuario interactúa con la interfaz gráfica activa un evento para que un componente determinado realice una acción determinada. Para que un evento determinado active una operación, éste debe poseer un escuchador “Listener” con, al menos, un método determinado, el cual se ejecutará cuando escuche el evento.
Ejemplo, en una interfaz un usuario ingresa dos números y luego hace clic sobre el botón del operador +, este botón debe tener un método que sume los dos números, asigne la respuesta a una variable y luego envié la respuesta a la interfaz.
Gestión de eventos
Listeners
Los Listeners (oyentes o escuchadores) se encargan de controlar los eventos, esperan a que el evento se produzca y realiza una serie de acciones.
Cada Listener tiene una serie de métodos que debemos implementar obligatoriamente, aunque solo queramos usar uno de ellos.
Los Listeners que usaremos estarán en el paquete java.awt. event.
Un formulario implementa un listener dependiendo el tipo de evento. Al implementar la interface ActionListener, se sobrescribe el método abstracto actionPerformed, para la gestión de los eventos enviados por los componentes adicionados al formulario.
Designing a Swing GUI
Es un diseñador profesional para interfaz gráfica que proporciona un conjunto de plugins que permite crear interfaces gráficas de usuario utilizando los componentes de la librería swing.
El diseñador provee una vista de diseño donde se crea un formulario que sirve como un contenedor que agrupa todos los componentes de swing que pueden ser arrastrados y soltar desde la paleta de componentes. Cuando se crea un formulario se crea una clase enlazada que contiene todo el código java generado automáticamente y que define todos los componentes que fueron arrastrados al formulario. La clase enlazada se actualizan automáticamente cada vez que se adiciona o actualiza un componente.
El diseñador incluye componentes como: una paleta, el área de diseño, el editor de propiedades y el inspector.
El siguiente video tiene como objetivo presentar la creación de una interfaz gráfica de usuario adicionando componentes como JComboBox, JTable, Jlist. |
Relación de GUI con el controlador
Para el MVC (modelo-vista-controlador), la vista corresponde a la interfaz gráfica de usuario, compuesta de componentes como: cajas de texto, imágenes, cajas de chequeo, botones, listas de datos. La vista no debe contener código que permita realizar operaciones con la base de datos. La vista es responsable de recibir la visualización y el diseño de los datos que le proporciona el controlador.
Java design Builder proporciona componentes para diseñar la vista. Una vista es una clase java, que hereda de la clase JFrame y en la que se adicionan componentes.
El controlador es responsable recibir los eventos de entrada producidos en la vista y enviarlos al modelo, también es responsable de recibir los mensajes enviados por el modelo y devolverlos a la vista.
Actividad de aprendizaje
En la siguiente actividad de relación podrás comprobar lo aprendido con respecto a la Interfaz gráfica de usuario. |
Resumen
En esta unidad se presentan el API Swing que es un framework para desarrollar aplicaciones front-end/GUI basadas en Java. Su modelo de programación es por hilos. El paquete swing es parte de la JFC (Java Foundation Classes). Swing provee facilidades para ayudar a los desarrolladores a construir GUIs. Los componentes de swing utilizan la infraestructura awt, incluyendo el modelo de eventos que responde a eventos tales como, acciones de teclado, mouse o cualquier tecla.
En la segunda sesión de esta unidad hablamos de la arquitectura de API de Swing MVC. El modelo representa los datos del componente. La vista muestra la representación visual de los datos del componente y el controlador toma la entrada del usuario en la vista y refleja los cambios de datos del componente.
Luego hablamos de librería swing la cual proporciona una lista de componentes gráficos que brindan una interacción con el usuario. En otra sesión de esta unidad se hace una introducción a Java Swing design builder que es un conjunto de plugins que permiten crear GUI en Java sin gastar mucho tiempo. Tiene la propiedad de generar código en java.
Al finalizar hablamos de la relación en GUI y el controlador y se define que Java design Builder proporciona componentes para diseñar la vista. Una vista es una clase java, que hereda de la clase JFrame y en la que se adicionan componentes.
Caso de Estudio
De acuerdo a lo estudiado, y continuando con el primer caso de estudio, visualiza el siguiente caso de estudio, pon a prueba tus conocimientos desarrollando la actividad y revisa si estás en lo correcto.
Bibliografía ()
- Paul, D.(2016). Cómo Programar en Java. España: Pearson Education.
- Jhon, Z. (2010). The definitive Guide to Swing. Usa: Aprés.
- Herbert, S. (2011). Swing a Beginner Guide. México: McGrawHill.
- Luis, J. (2011). Programación en Java. México, McGrawHill.
Referencias Web
- Docs.oracle.com. (2016). Java Platform SE 7. [online] Disponible en: https://docs.oracle.com/javase/7/docs/api/
- Netbeans.org. (2017). Designing a Swing GUI in NetBeans IDE - Tutorial. [online] Disponible en: https://netbeans.org/kb/docs/java/quickstart-gui.html
- Docs.oracle.com. (2017). javax.swing (Java Platform SE 7). [online] Disponible en: https://docs.oracle.com/javase/7/docs/api/javax/swing/package-summary.html