You are on page 1of 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”) " Intento de un API común mediante el “mínimo común denominador” de todos los sistemas de ventanas " Problemas: componentes escasos, aplicaciones dependientes del entorno de ventanas

Manejo básico de eventos en Java (AWT y Swing)

! 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
1. Crear los componentes 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

Ejemplo 1
! Probar la aplicación DisplayMessage

Librerías Geométricas

Copyright © 2008-2009 Universidad de Alicante

3

Librerías Geométricas

Copyright © 2008-2009 Universidad de Alicante

4

Cuando un evento se genera en un componente. Crear los oyentes de los eventos que queremos tratar " 3. Asociar los oyentes a los componentes " 4. Crear los componentes " 2. la aplicación llama al método correspondiente del oyente asociado a ese componente Notificación de eventos 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 ! 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 } Jerarquía de eventos Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 7 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 8 .Oyentes de eventos ! Los eventos los generan los componentes y los procesan objetos que implementan la interfaz EventListener ! Pasos: " 1.

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 Oyentes AWT y componentes Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 9 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 10 ¿Dónde implementar la interfaz? ! Dado que los oyentes deben ser objetos de una clase que implemente la interfaz..!!! }!!!!!! public void actionPerformed(ActionEvent e)!!! {!! !!!!! // Aqui va el codigo de la accion!!! } } Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 11 Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 12 .. btn.addActionListener(this).Tipos de oyentes ! Para cada evento con nombre xxxEvent.. !!!!!!!!!!!!!!!!! .!!!!!!! Button btn = new Button("Boton"). Clase que define el componente y la interfaz class MiClase implements ActionListener{!!! public MiClase()!!! { !!!!!!!!!! .. surge la cuestión de qué clase debe implementar la interfaz ! Tres opciones: " Crear una clase que defina el componente e implemente el oyente " Crear una clase aparte " Crear una clase interna 1.

addActionListener( new ActionListener() { !public void actionPerformed(ActionEven e)! { // Aqui va el codigo de la accion } }). Clase aparte class MiClase{ !!!! public MiClase() !!!! { !!!!!!! . btn. !!!!!!! btn. Clase interna Button btn = new Button("Boton")... !!!!!!! Button btn = new Button("Boton").2. Librerías Geométricas Copyright © 2008-2009 Universidad de Alicante 14 .addActionListener(new MiOyente())... !!!! } } 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 3. !!!!!!! .