Está en la página 1de 4

Razonamiento Geométrico Librerias Java para diseñar GUI

! AWT
" Primera librería gráfica
" Se usan llamadas a los sistemas de ventanas nativos (componentes
“pesados”)
Manejo básico de eventos en Java " Intento de un API común mediante el “mínimo común
(AWT y Swing) denominador” de todos los sistemas de ventanas
" Problemas: componentes escasos, aplicaciones dependientes del
entorno de ventanas
! Swing
" Evolución tras AWT
" Se usa código propio de Java que dibuja en una ventana
proporcionada por el sistema de ventanas (componentes “ligeros”).
" Mayor cantidad de componentes y uniformidad de las aplicaciones
gráficas en todos los entornos de ventanas

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 1 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 2

Pasos para definir una GUI con Swing Ejemplo 1

1. Crear los componentes ! Probar la aplicación DisplayMessage


2. Definir las propiedades de los componentes
3. Crear los contenedores que almacenan los
componentes
4. Especificar los LayoutManagers para disponer los
componentes en los contenedores
5. Añadir los componentes en los contenedores
6. Definir la escucha de eventos
7. Mostrar la GUI al usuario

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 3 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 4
Oyentes de eventos Notificación de eventos

! Los eventos los generan los componentes y los


procesan objetos que implementan la interfaz
EventListener
! Pasos:
" 1. Crear los componentes
" 2. Crear los oyentes de los eventos que queremos tratar
" 3. Asociar los oyentes a los componentes
" 4. Cuando un evento se genera en un componente, la
aplicación llama al método correspondiente del oyente
asociado a ese componente

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 5 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 6

Objetos de la clase Event Jerarquía de eventos

! Cuando se llama a una función que procesa un


evento, definida en una clase que implementa el
interfaz EventListener, se pasa como parámetro
información sobre el evento producido

public void actionPerformed(ActionEvent event) {


// código para tratar el evento
}

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 7 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 8
Tipos de oyentes Oyentes AWT y componentes

! Para cada evento con nombre xxxEvent, se define


una interfaz llamada xxxListener en la que se
definen los métodos que van a manejarse
relacionados con ese evento

ActionEvent -> ActionListener


MouseEvent -> MouseListener

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 9 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 10

1. Clase que define el componente y la


¿Dónde implementar la interfaz?
interfaz
! Dado que los oyentes deben ser objetos de una clase class MiClase implements ActionListener{!!!
public MiClase()!!! {
que implemente la interfaz, surge la cuestión de qué !!!!!!!!!! ...!!!!!!!
Button btn = new Button("Boton");
clase debe implementar la interfaz btn.addActionListener(this);
! Tres opciones: !!!!!!!!!!!!!!!!! ...!!!
}!!!!!!
" Crear una clase que defina el componente e implemente
el oyente public void actionPerformed(ActionEvent e)!!! {!!
!!!!! // Aqui va el codigo de la accion!!!
" Crear una clase aparte }
" Crear una clase interna }

Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 11 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 12
2. Clase aparte 3. Clase interna
class MiClase{
!!!! public MiClase()
!!!! { Button btn = new Button("Boton");
!!!!!!! ... btn.addActionListener(
!!!!!!! Button btn = new Button("Boton"); new ActionListener() {
!!!!!!! btn.addActionListener(new MiOyente());
!public void actionPerformed(ActionEven e)!
!!!!!!! ...
!!!! }
{
} // Aqui va el codigo de la accion
class MiOyente implements ActionListener{ }
!!!! public void actionPerformed(ActionEvent e) });
!!!! {
!!!!!!!! // Aqui va el codigo de la accion
!!!! }
}
Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 13 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 14

También podría gustarte