Está en la página 1de 28

Introduccin a Swing

Taller de Programacin 2016


tprog@fing.edu.uy
Introduccin

En qu estamos exactamente?
Cmo debemos codificar?
Por donde empezar?

Empecemos por entender el contexto y la


arquitectura de lo que debemos construir en
esta primera etapa
Introduccin
Contexto
Arquitectura en capas
Al da de hoy
Introduccin
Introduccin

Pensemos en la calidad del software


Ms precisamente en la USABILIDAD
Introduccin
Introduccin
Parntesis
Relacionmoslo con el laboratorio

Diagrama de componentes
propuesto en la letra
Introduccin
Resumen del contexto
Se requiere una capa de presentacin
grfica, no por consola de comandos
Es decir, el proyecto requiere una
tecnologa para construir una capa de
presentacin ms amigable e intuitiva
Para cumplir con dicho requerimiento se
propone el uso de Swing
Qu es Swing?
Tecnologa Java para la construccin de
interfaces de grficas de escritorio
Biblioteca que contiene un conjunto de
controles y elementos grficos como botones,
listas, etiquetas, etc., que permiten interactuar
con la lgica de la aplicacin
Permite construir interfaces capaces de ser
ejecutadas en diferentes plataformas (al igual
que el propio lenguaje Java)
Qu es Swing?
Est implementado en 18 paquetes (packages)
Los paquetes ms utilizados son:
javax.swing
javax.swing.events
Swing utiliza (hereda de) AWT (Abstract
Window Toolkit) una versin primitiva para
manejo de interfaces grficas en Java
Qu es Swing?
Posee una gran cantidad de caractersticas,
por ejemplo:
Jerarquas de componentes Swing
Uso de layout managers
Uso de models
Manejo de eventos
Qu es Swing? :: Componentes
Jerarqua de componentes Swing
Contenedores de Alto Nivel (top-level containers)
son la raz de la jerarqua de componentes
Contenedores Intermedios (intermediate containers)
pueden tener otros contenedores intermedios y/o
componentes bsicos
Componentes Bsicos (basic components)
controles elementales para entrada y salida de
datos a los usuarios finales
Qu es Swing? :: Componentes
Contenedores de Alto Nivel
Algunos top-level containers
JFrame: ventana con ttulo, borde y contenido
JDialog: sub-ventana independiente (cuadro de
dilogo)
Para visualizar un control Swing en pantalla, debe
pertenecer a alguna jerarqua de contenedores (cuya
raz ser un top-level container)
Cada top-level container tiene un content-pane que
contendr todos los componentes visibles
Qu es Swing? :: Componentes
Contenedores de Alto Nivel
Opcionalmente un top-level puede incluir
una barra de mens (menu bar)
La barra de men no est
contenida en el content-pane
Qu es Swing? :: Componentes
Contenedores Intermedios, ejemplos
JPanel: contenedor de componentes
JScrollPane: proporciona barras de desplazamiento
alrededor de un componente
JSplitPane: permite al usuario cambiar el tamao
relativo de dos componentes
JInternalFrame: ventana dentro de otra ventana
Qu es Swing? :: Layouts
Layout
Se refiere al esquema de distribucin de los
elementos dentro de un diseo
Layout Manager
Es un objeto que implementa la interfaz
LayoutManager y determina el tamao y posicin
de los componentes dentro de un contenedor
Realiza el layout (tamao y ubicacin) automtico
de los elementos que se agregan al contenedor al
cual el layout manager controla
Qu es Swing? :: Layouts
Layout Manager
Existen mltiples formas preexistentes de layout
managers as como la posibilidad de no utilizar
ningn layout manager (llamado Absolute Layout).
Tambin se pueden crear layout managers
personalizados (poco comn y desaconsejable)
Los ms sencillos son: BorderLayout, FlowLayout,
BoxLayout y GridLayout
Qu es Swing? :: Layouts
BorderLayout FlowLayout

Acomoda los componentes de izquierda a derecha

Utiliza cinco zonas para colocar componentes BoxLayout

GridLayout

Componentes de forma horizontal y vertical (X, Y)

Acomoda componentes en forma de matriz


Qu es Swing? :: Modelos
Uso de Modelos (pequea visin)
Casi la totalidad de los componentes poseen un
modelo (Model), aunque tpicamente el
programador no necesite saber de l
Los modelos ms tiles son colecciones de
elementos que sern mostrados por componentes
Por ejemplo, si tenemos una lista de elementos, y
queremos mostrarlo en un control JList, debemos
trabajar sobre el modelo de la lista (con la
coleccin), para que esta se vea bien en pantalla
Qu es Swing? :: Eventos
Manejo de eventos
Un evento ocurre cada vez que el usuario
interacta con componentes de la interfaz grfica
Se dice que el evento es disparado por Swing y el
programador, si le interesa hacer algo debido a la
ocurrencia del evento, debe manejarlo
Similar al manejo de excepciones, pero un evento
no manejado no provoca un error en el programa
Manejar un evento significa asociar un cdigo para
que se ejecute cuando el evento se dispara
Qu es Swing? :: Eventos
Manejo de eventos
Un control tiene una serie de eventos a los que
podemos especificarles cdigo
Ejemplo
Evento click de un botn que tiene el objetivo
de dar un alta de Usuario
Al presionar dicho botn, se ejecutar cdigo
definido por el usuario programador, el cual crear
un Usuario en el Sistema
Qu es Swing? :: Eventos
Al presionar el botn
Registrar, se captura el
evento click y se ejecuta el
cdigo definido
En este caso se toman los
datos de la interfaz grfica:
nombre, apellido y C.I.
Luego se llama a una interfaz
de caso de uso, que registra
un Usuario en el Sistema
Recomendaciones prcticas
Cmo desarrollar en Swing?
Hacerlo mediante cdigo puro
Utilizar como ayuda el diseador
incorporado en los IDE, el cual genera cdigo
para facilitar el proceso de diseo GUI.
Recomendaciones prcticas
Diseador

Mediante Drag and Drop


(arrastrar y soltar), el
usuario Programador
disea la interfaz

Luego se agrega el cdigo


pertinente para trabajar
con la lgica (eventos, etc.)
Demo
Antes de ejecutar, veamos la realidad
implementada:
Se ha creado un software que permite el
registro de Usuarios de los que se conoce
el nombre, apellido y su cdula de
identidad (que lo identifica)
Se debe brindar la posibilidad de buscar
Usuarios por su cdula y ver su
informacin personal
Demo
Se cuenta con dos paquetes
Lgica (Clases)
Usuario (representa al Usuario)
DataUsuario (representa su informacin)
ManejadorUsuario (coleccin global de usuarios)
ControladorUsuario (controlador de los CU)
IControladorUsuario (interface del controlador)
Fbrica (creadora de interfaces)
Presentacin
JFrame Principal.java
Demo
Referencias
The Swing Tutorial (Oracle)
http://download.oracle.com/javase/tutorial/uiswing/index.html

The Definitive Guide to Java Swing (J. Zukowski)


http://link.springer.com/book/10.1007/978-1-4302-0033-8

Piensa en Java (B. Eckel)


http://www.univo.edu.mx/computo/maestria/Pensando%20En%2
0Java.pdf