2. DEFINICION
El paquete Swing es parte de
la JFC (Java Foundation
Classes) en la plataforma
Java. La JFC provee
facilidades para ayudar a la
gente a construir GUIs. Swing
abarca componentes como
botones, tablas, marcos, etc...
3. ARQUITECTURA
Es un framework Modelo Vista Controlador para desarrollar interfaces gráficas para Java con
independencia de la plataforma. Sigue un simple modelo de programación por hilos, y posee
las siguientes características principales:
Independencia de plataforma.
Extensibilidad: es una arquitectura altamente particionada: los usuarios pueden proveer sus
propias implementaciones modificadas para sobrescribir las implementaciones por defecto.
Se puede extender clases existentes proveyendo alternativas de implementación para
elementos esenciales.
Personalizable: dado el modelo de representación programático del framework de swing,
el control permite representar diferentes estilos de apariencia "look and feel" (desde
apariencia MacOS hasta apariencia Windows XP pasando por apariencia GTK+, IBM
UNIX o HP UX entre otros). Además, los usuarios pueden proveer su propia
implementación de apariencia, que permitirá cambios uniformes en la apariencia existente
en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación.
4. Principales clases
Las clases de Swing se parecen mucho a las de AWT. Así la clase Panel de AWT tiene una clase
JPanel en Swing. Esto se cumple para todas las clases menos para Choice, Canvas, FileDialgog y
ScrollPane.
ButtonGroup: Muestra una lista de elementos (JRadioButton) con solo uno seleccionable. Cada
elemento tiene un círculo, que en caso del elemento seleccionado contendrá un "punto".
JToggleButton: Es como un botón normal, pero al ser pinchado por el usuario queda activado.
JProgressBar: Representa una barra de estado de progreso, mediante la que habitualmente se
muestra el desarrollo de un proceso en desarrollo (ejemplo: la instalación de una aplicación).
JTabbedPane: Es una ventana con solapas (la que utiliza Windows). Este componente había
sido muy solicitado.
JApplet: Aunque ya existía una clase Applet en AWT, esta nueva versión es necesaria para crear
applets Java que utilicen interfaces Swing.
5. Ventajas
El diseño en Java puro posee menos limitaciones de
plataforma.
El desarrollo de componentes Swing es más activo.
Los componentes de Swing soportan más características.
6. Patrón de diseño Modelo-Vista-Controlador
los componentes Swing están basados en un patrón de diseño denominado
"Modelo-Vista-Controlador".
El concepto de este patrón de diseño se basa en tres elementos:
Modelo: Almacena el estado interno en un conjunto de clases.
Vista: Muestra la información del modelo
Controlador: Cambia la información del modelo (delegado).
7. HISTORIA DE SWING
Las Internet Foundation Classes (IFC) eran una biblioteca gráfica para el lenguaje de
programación Java desarrollada originalmente por Netscape y que se publicó en 1996.
Desde sus inicios el entorno Java ya contaba con una biblioteca de componentes gráficos
conocida como AWT. Entonces una aplicación Java corriendo en Microsoft Windows usaría el
botón estándar de Windows y una aplicación corriendo en UNIX usaría el botón estándar de
Motif. Es decir que sólo se disponen en AWT de las funcionalidades comunes en todos los
sistemas operativos.
En 1997, Sun Microsystems y Netscape Communications Corporation anunciaron su intención
de combinar IFC con otras tecnologías de las Java Foundation Classes. Además de los
componentes ligeros suministrados originalmente por la IFC, Swing introdujo un mecanismo
que permitía que el aspecto de cada componente de una aplicación pudiese cambiar sin
introducir cambios sustanciales en el código de la aplicación. La introducción de soporte
ensamblable para el aspecto permitió a Swing emular la apariencia de los componentes nativos
manteniendo las ventajas de la independencia de la plataforma.