Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

GUI Informe TP 2

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 18

INTERFAZ GRFICA DE USUARIO

1. DEFINICIN DE GUI (Graphical User Interface)

La interfaz de usuario es la parte del programa que permite al usuario interaccionar con l. La API de Java proporciona una biblioteca de clases para el desarrollo de Interfaces grficas de usuario (en realidad son dos: AWT y Swing). La biblioteca proporciona un conjunto de herramientas para la construccin de interfaces grficas que tienen una apariencia y se comportan de forma semejante en todas las plataformas en las que se ejecuten. La estructura bsica de la biblioteca gira en torno a componentes y contenedores. Los contenedores contienen componentes y son componentes a su vez, de forma que los eventos pueden tratarse tanto en contenedores como en componentes. La API est constituida por clases, interfaces y derivaciones. Diagramacin de una GUI

2. APIs DE JAVA PARA DESARROLLO DE GUIs

Swing es un conjunto de clases desarrolladas por primera vez para Java 1.2 (el llamado Java2), para mejorar el anterior paquete que implementaba clases para fabricar interfaces de usuario, el llamado AWT (Abstract Window Tools) que an se usa bastante en las aplicaciones Java. Tanto Swing como AWT forman parte de una coleccin de clases llamada JFC (Java Foundation Classes) que incluyen paquetes dedicados a la programacin de interfaces grficos (as como a la produccin multimedia).

Paquetes de la API (Aplication Programming Interface)

2.1. Paquete AWT AWT est formada por un conjunto de clases que no dependen del sistema operativo, pero que proponen una serie de clases para la programacin de GUIs. AWT usa clases grficas comunes a todos los sistemas operativos grficos y luego la mquina virtual traduce esa clase a la forma que tenga en el sistema concreto en el que se ejecut el programa, sin importar que dicho sistema sea un sistema X, McIntosh o Windows. Componentes para AWT

A Pesar del avance con AWT, se encontraban 3 limitaciones en la implementacin de dicho paquete: a) AWT tena problemas de compatibilidad en varios sistemas. b) A AWT le faltaban algunos componentes avanzados (rboles, tablas,...). c) Consuma excesivos recursos del sistema.

2.2. Paquete Swing Swing aporta muchas ms clases, consume menos recursos y construye mejor la apariencia de los programas. En cualquier caso, AWT no desaparece; simplemente se aade a las nuevas capacidades Swing.

2.2.1. Componentes de Swing Los componentes son los elementos bsicos de la programacin con Swing. Todo lo que se ve en un GUI de Java es un componente. Los componentes se colocan en otros elementos llamados contenedores que sirven para agrupar componentes. Un administrador de diseo se encarga de disponer la presentacin de los componentes en un dispositivo de presentacin concreto. Componentes para Swing

2.2.2. Clases de Swing

MANEJO DE EVENTOS PARA GUIs EN JAVA


En trminos de Java, un evento es un objeto que es lanzado por un objeto y enviado a otro objeto llamado escuchador (listener). Un evento se lanza (o se dispara, fire) cuando ocurre una determinada situacin (un clic de ratn, una pulsacin de tecla,...). La programacin de eventos es una de las bases de Java y permite mecanismos de diseo de programas orientados a las acciones del usuario. Es decir, son las acciones del usuario las que desencadenan mensajes entre los objetos (el flujo del cdigo del programa se desva en funcin del evento producido, alterando la ejecucin normal). Hay multitud de tipos de eventos, ms adelante se seala una lista de los eventos fundamentales. 1. ELEMENTOS DENTRO DEL MANEJO DE EVENTOS El objeto fuente: Que es el objeto que lanza los eventos. Dependiendo del tipo de objeto que sea, puede lanzar unos mtodos u otros. Por ejemplo un objeto de tipo JLabel (etiqueta) puede lanzar eventos de ratn (MouseEvent) pero no de teclado (KeyEvent). El hecho de que dispare esos eventos no significa que el programa tenga que, necesariamente, realizar una accin. Slo se ejecuta una accin si hay un objeto escuchando. El objeto escuchador u oyente (Listener): Se trata del objeto que recibe el evento producido. Es el objeto que captura el evento y ejecuta el cdigo correspondiente. Para ello debe implementar una interfaz relacionada con el tipo de evento que captura. Esa interfaz obligar a implementar uno o ms mtodos cuyo cdigo es el que se ejecuta cuando se dispare el evento. El objeto de evento. Se trata del objeto que es enviado desde el objeto fuente al escuchador. Segn el tipo de evento que se haya producido se ejecutar uno u otro mtodo en el escuchador.

2. ESCUCHADORES DE EVENTOS Cada tipo de evento tiene asociado un interfaz para manejar el evento. A esos interfaces se les llama escuchadores (Listeners) ya que proporcionan mtodos que estn a la espera de que el evento se produzca. Cuando el evento es disparado por el objeto fuente al que se estaba escuchando, el mtodo manejador del evento se dispara automticamente. Ejemplo: el mtodo actionPerformed es el encargado de gestionar eventos del tipo ActionEvent (eventos de accin, se producen, por ejemplo, al hacer clic en un botn). Este mtodo est implementado en la interfaz ActionListener (implementa escuchadores de eventos de accin). Cualquier clase que desee escuchar eventos (los suyos o los de otros objetos) debe implementar la interfaz (o interfaces) pensada para capturar los eventos del tipo deseado. Esta interfaz habilita a la clase para poder implementar mtodos de gestin de eventos. Ejemplo: un objeto que quiera escuchar eventos ActionEvent, debe implementar la interfaz ActionListener. Esa interfaz obliga a definir el mtodo ya comentado actionPerformed. El cdigo de ese mtodo ser invocado automticamente cuando el objeto fuente produzca un evento de accin.

3. PROCESO DE GESTIN DE EVENTOS

4. FUENTES DE EVENTOS Disparar eventos

El objeto fuente permite que un objeto tenga capacidad de enviar eventos. Esto se consigue mediante un mtodo que comienza por la palabra add seguida por el nombre de la interfaz que captura este tipo de eventos. Este mtodo recibe como parmetro el objeto escuchador de los eventos. Esto es ms fcil de lo que parece. Para que un objeto fuente, sea escuchado, hay que indicar quin ser el objeto que escuche (que obligadamente deber implementar la interfaz relacionada con el evento a escuchar). Cualquier componente puede lanzar eventos, slo hay que indicrselo, y eso es lo que hace el mtodo add. Ejemplo: import java.awt.*; import java.awt.event.*; import javax.swing.*; /** * Clase MiVentana * @author PC9 */ public class MiVentana extends JFrame implements ActionListener { JButton boton1=new JButton("Prueba de Boton"); //Constructor

public MiVentana() { boton1.addActionListener(this); // el boton lanza eventos que son // capturados por la ventana } @Override public void actionPerformed(ActionEvent ae) { //Manejo del evento } } Eliminar Oyente

Hay un mtodo remove que sirve para que un oyente del objeto deje de escuchar los eventos.

5. JERARQUIZACIN DE EVENTOS

6. OBJETO DE EVENTO 6.1. Clase EventObject Todos los objetos de evento pertenecen a clases que derivan de EventObject. Esta es la superclase de todos los objetos de evento. Representa un evento genrico y en la prctica slo sirve para definir los mtodos comunes a todos los eventos que son:

6.2. Clase AWTEvent Se trata de una clase descendiente de EventObject y padre de todos los eventos para componentes Swing y AWT. Se encuentra en el paquete java.awt.event. Proporciona mtodos comunes para todas sus clases hijas. Estos son (adems de los ya comentados getSource y toString):

7. LISTA TOTAL DE EVENTOS: INTERFAZ, OYENTE Y MTODOS

CLASES ADAPTADORAS EN JAVA


1. DEFINICIN DE CLASE ADAPTADORA Para facilitar la gestin de eventos en ciertos casos, Java dispone de las llamadas clases adaptadoras. Gracias a ellas, en muchos casos se evita tener que crear clases slo para escuchar eventos. Estas clases son clases de contenido vaco pero que son muy interesantes para capturas sencillas de eventos.

2. FORMA DE OPERAR DE LA CLASE ADAPTADORA Una clase abstracta adaptador para recibir eventos de los componentes. Los mtodos de esta clase estn vacos. Esta clase existe como la conveniencia de crear objetos detectores. Extienda esta clase para crear una ComponentEvent oyente y reemplazar los mtodos para los eventos de inters. (Si se implementa la ComponentListenerinterfaz, debe definir todos los mtodos en el mismo. Esta clase abstracta define mtodos nulos para todos ellos, por lo que slo se puede tener para definir mtodos para los eventos que le interesan.) Crear un objeto detector con su clase y luego registrarlo con un componente utilizando el componente addComponentListener mtodo. Cuando el tamao del componente, la ubicacin o la visibilidad de los cambios, el mtodo correspondiente en el objeto detector se invoca y la ComponentEvent se pasa a ella.

3. CLASE ComponentAdapter

4. CLASE ContainerAdapter

5. CLASE FocusAdapter Una clase abstracta adaptador para recibir eventos de foco de teclado.

6. CLASE MouseAdapter

7. CLASE MouseMotionAdapter

8. CLASE KeyAdapter Una clase abstracta adaptador para recibir eventos de teclado.

9. CLASE WindowAdapter

También podría gustarte