Hemos visto que la interfaz gráfica de usuario es la parte del programa que permite al usuario interaccionar con él. Pero, ¿cómo la podemos crear en Java?
El API de Java proporciona una librería de clases para el desarrollo de interfaces gráficas de usuario (en realidad son dos: AWT y Swing). Esas librerías se engloban bajo los nombres de AWT y Swing, que a su vez forman parte de las Java Foundation Classes o JFC. AWT es una librería ya en desuso y en la actualidad Swing está siendo desplazado por JavaFX, plataforma que permite el desarrollo de interfaces gráficas de usuario con grandes prestaciones y ejecutables en cualquier plataforma (pc, móviles, web, etc). JavaFX es una tecnología de Oracle que no está incluída en JDK pero está a disposición de los usuarios que deseen utilizarla. Sin duda JavaFX marcará el futuro de las interfaces gráficas en Java, pues además es compatible con componentes Swing.
Entre las clases de las JFC hay un grupo de elementos importante que ayuda a la construcción de interfaces gráficas de usuario (GUI) en Java.
Los elementos que componen las JFC son:
- Componentes Swing: encontramos componentes tales como botones, cuadros de texto, ventanas o elementos de menú.
- Soporte de diferentes aspectos y comportamientos (Look and Feel): permite la elección de diferentes apariencias de entorno. Por ejemplo, el mismo programa puede adquirir un aspecto Metal Java (multiplataforma, igual en cualquier entorno), Motif (el aspecto estándar para entornos Unix) o Windows (para entornos Windows). De esta forma, el aspecto de la aplicación puede ser independiente de la plataforma, lo cual está muy bien para un lenguaje que lleva la seña de identidad de multiplataforma, y se puede elegir el que se desee en cada momento.
- Interfaz de programación Java 2D: permite incorporar gráficos en dos dimensiones, texto e imágenes de alta calidad.
- Soporte de arrastrar y soltar (Drag and Drop) entre aplicaciones Java y aplicaciones nativas. Es decir, se implementa un portapapeles. Llamamos aplicaciones nativas a las que están desarrolladas en un entorno y una plataforma concretos (por ejemplo Windows o Unix), y sólo funcionarán en esa plataforma.
- Soporte de impresión.
- Soporte sonido: captura, reproducción y procesamiento de datos de audio y MIDI
- Soporte de dispositivos de entrada distintos del teclado, para japonés, chino, etc.
- Soporte de funciones de Accesibilidad, para crear interfaces para discapacitados: permite el uso de tecnologías como los lectores de pantallas o las pantallas Braille adaptadas a las personas discapacitadas.
Con estas librerías, Java proporciona un conjunto de herramientas para la construcción de interfaces gráficas que tienen una apariencia y se comportan de forma semejante en todas las plataformas en las que se ejecuten.
El objetivo de esta unidad es hacer una introducción a la construcción de interfaces gráficas con Java utiilzando las dos plataformas más utilizadas: Swing y JavaFX. Se trabajarán los conceptos básicos que permitirán una primera tomar de contacto con en el mundo de las interfaces gráficas de usuario. Todos estas contenidos serán trabajados en profundidad en el Módulo Profesional "Interfaces de Usuario" de segundo curso.
Una aplicación nativa está diseñada para ejecutarse en el entorno informático (lenguaje de máquina y sistema operativo) al que se hace referencia. El término se emplea en contraposición a una aplicación, por ejemplo, escrita en Java que no es nativa, no está diseñada para una sola plataforma.