01/07/2010
Manejo de Eventos
Curso: Tecnología de la Programación II. Docente: Mg. Zoraida Vidal Melgarejo,.
INTERFACES GRÁFICAS DE USUARIO (GUI). Las interfaces gráficas de usuarios a base de ventanas son elementos que se utilizan en el desarrollo de aplicaciones. Una de las ventajas de trabajar con ventanas es que todas se comportan de la misma forma independientemente del sistema operativo con el que se trabaje (Windows, Linux, etc.) y, en muchos casos, utilizan los mismos componentes básicos para introducir órdenes (menús descendentes, botones, etc.).
1
01/07/2010
INTERFACES GRÁFICAS DE USUARIO (GUI). Ícono de la aplicación
Barra de título
Botones de control de ventana
Barra de menú Barra de herramientas
Marco de la ventana
Barra de estado Área de trabajo
Barras de desplazamiento
INTERFACES GRÁFICAS DE USUARIO (GUI).
Barra de menú: visualiza el conjunto de los menús disponibles para esa aplicación. Al activarse un menú se visualiza el conjunto de órdenes que la forman.
Ícono de la aplicación y menú de control: el menú de control proporciona órdenes para restaurar tamaño, mover, dimensionar, minimizar, maximizar y cerrar la ventana.
Barra de título: contiene el nombre de la ventana y del documento. También permite mover la ventana, maximizarla y restaurarla (en combinación con el mouse).
2
01/07/2010
INTERFACES GRÁFICAS DE USUARIO (GUI).
Botones de control de la ventana: al pulsar los botones permiten minimizar, maximizar/restaurar y/o cerrar la ventana.
Barras de desplazamiento: cuando la información es mayor al tamaño de la ventana, Windows añade las barras de desplazamiento horizontal y/o vertical según se requiera.
Marco de la ventana: permite modificar el tamaño de la ventana.
INTERFACES GRÁFICAS DE USUARIO (GUI).
Área de trabajo: es la parte de la ventana en la que el usuario coloca el texto y/o gráficos.
Barra de herramientas: contiene un conjunto de ícono que permiten un acceso rápido a algunas opciones del menú.
Barra de estado: permite mostrar mensajes sobre la ubicación o el estado de alguno de los componentes.
3
01/07/2010
FORMULARIOS. Un formulario es una ventana sobre la que se dibujan otros objetos llamados componentes o controles, como etiquetas, cajas de texto, etc., con el fin de aceptar, procesar o visualizar datos. Una aplicación con una interfaz gráfica trabaja estableciendo entre los objetos que componen la misma una comunicación mediante mensajes, los cuales son producidos por eventos. Cuando un mensaje llega a un objeto, éste tiene que procesarlo.
FORMULARIOS. Un evento es un mecanismo mediante el cual el objeto puede notificar de la ocurrencia de un suceso. El evento puede ser producido por el usuario, por el sistema o indirectamente por el código. En un entorno de ventanas, cada ventana y cada control pueden responder a un conjunto de eventos predefinidos. Cuando ocurre uno de estos eventos, el sistema envía un mensaje que será interceptado por el objeto que deba responder al mismo. La respuesta consistirá en la ejecución del método que se haya escrito para responder a dicho evento.
4
01/07/2010
FORMULARIOS. Método 1
Comienzo
Recuperar siguiente evento
¿Salir?
Entregar información del evento
No
Método 2
Método 3
Método 4
Si Fin
Secuencia de respuesta a la generación de un evento
MANEJO DE EVENTOS.
El programador debe realizar dos tareas clave para procesar un evento de interfaz gráfica de usuario en un programa: debe registrar un componente de escucha del evento para el componente de la GUI que se espera genere ese evento, y debe implementar un método manejador del evento (o un conjunto de métodos manejadores del evento).
5
01/07/2010
MANEJO DE EVENTOS.
Cada interfaz de componente de escucha de eventos especifica uno o más métodos manejadores de eventos que deben declararse en la clase que implemente a la interfaz de componente de escucha de eventos. El uso de componentes de escucha de eventos en el manejo de eventos se conoce como el modelo de delegación de eventos: el procesamiento de un evento se delega a un objeto específico (el componente de escucha) en el programa.
MANEJO DE EVENTOS.
Cuando ocurre un evento, el componente de la GUI con el que el usuario interactuó notifica a sus componentes de escucha registrados, llamando al método manejador de eventos apropiado de cada componente de escucha. Por ejemplo, cuando el usuario oprime la tecla Enter (evento ocurrido) en un objeto JTextField (Componente), se hace una llamada al manejador de eventos actionPerformed (método) del componente ActionListener (componente de escucha registrado).
6
01/07/2010
MANEJO DE EVENTOS.
Componente
evento ocurrido
Componente de Escucha
Método (respuesta al evento)
Secuencia de manejo de eventos
BIBLIOTECA JFC. Java proporciona una biblioteca de clases denominada JFC (Java Foundation Classes – Clases Base de Java). Actualmente bajo esta denominación se agrupan las siguientes APIs (interfaces para programación de aplicaciones):
Swing: conjunto de componentes escritos en Java para diseñar interfaces gráficas de usuario que se ejecutan uniformemente en cualquier plataforma nativa que soporta la máquina virtual de java.
7
01/07/2010
BIBLIOTECA JFC.
AWT: Kit de herramientas de ventanas abstractas (Abstract Window Toolkit). Grupo de componentes, para diseñar interfaces gráficas de usuario, común a todas las plataformas, pero escritos específicamente para cada plataforma en código nativo; esto es, no están escritos en Java. Muchos de los componentes AWT han sido sustituidos en gran medida por el conjunto de componentes Swing, dado que muchos de los componentes Swing heredan de sus correspondientes AWT.
BIBLIOTECA JFC.
Accesibilidad: limitaciones.
ofrece
soporte
para
usuarios
con
Java 2D: permite incorporar en los programas, gráficos 2D de alta calidad, texto e imágenes.
Soporte para arrastrar y colocar (drag and drop): permite la transferencia de datos entre aplicaciones mediante la simple operación de arrastrarlos hasta el lugar de destino.
8
01/07/2010
CONTENEDORES.
Los contenedores son componentes Swing para ubicar otros componentes. Una ventana es un contenedor.
Para colocar adecuadamente los componentes, es posible utilizar una jerarquía de contenedores. La raíz de esa jerarquía siempre será el contenedor del nivel superior por el marco de la ventana. Pertenecen a este nivel los contenedores definidos por JFrame, JDialog y JApplet.
CONTENEDORES. marco panel etiqueta botón
Se puede ver en la figura, se trata de una ventana con una etiqueta y un botón; estos componentes pueden estar sobre el contenedor definido por la propia ventana o en cualquier otro que el programador puede crear y añadir a esta ventana.
9
01/07/2010
CONTENEDORES.
Cada contenedor define un componente denominado panel. Así, un contenedor de nivel superior en la jerarquía, define un panel denominado panel raíz. Se trata de un panel de contenido que permite ubicar, además de controles, otros paneles, formando así una jerarquía de paneles.
Para acceder al panel raíz de una ventana, ésta debe invocar a su método getContentPane.
ARQUITECTURA MODELO-VISTA-CONTROLADOR. Swing basa sus componentes en la arquitectura modelo – vista – controlador (MVC). El modelo se corresponde con el estado del componente. El estado de un objeto lo definen todos sus datos miembro. Por ejemplo, en una lista el modelo está definido por todos los miembros de la misma; en cambio, en una caja de texto el modelo está definido por el documento de texto. La vista se refiere a cualquier perspectiva de ese modelo. Por ejemplo, en una lista la vista es la representación gráfica de la misma. Y el controlador (manejador de eventos) es el responsable de la actualización del modelo.
10
01/07/2010
ARQUITECTURA MODELO-VISTA-CONTROLADOR.
eventos controlador
vista
modelo
Tanto la vista como el controlador son combinados en un objeto denominado delegado. El delegado representa gráficamente el modelo (trabajo que hace la vista) y transfiere la entrada del usuario hacia éste (trabajo que hace el controlador).
ARQUITECTURA MODELO-VISTA-CONTROLADOR.
Un JComponent puede tener diferentes modelos y delegados. Para acceder a los modelos se dispone de los métodos setModel y getModel. Para acceder a los delegados se dispone de los métodos setUI y getUI. Muchos componentes Swing no contenedores tienen modelos; por ejemplo, un botón (JButton) tiene un modelo (ButtonModel) que almacena el estado del botón (la tecla para acceso rápido, si está pulsado, etc.). Otros componentes tienen múltiples modelos; por ejemplo, una lista (JList) utiliza un ListModel para almacenar sus elementos y un ListSelectionModel para seguir la pista del elemento actualmente seleccionado.
11