Interfaz Grafica de Usuario Interfaz de Usuario La

  • Slides: 33
Download presentation
Interfaz Grafica de Usuario

Interfaz Grafica de Usuario

Interfaz de Usuario La interfaz de usuario es aquella que permite al programa interactuar

Interfaz de Usuario La interfaz de usuario es aquella que permite al programa interactuar con el usuario. Las interfaces de usuario pueden ser una simple línea de comandos o interfaces gráficas que proporcionan las aplicaciones más modernas. La interfaz de usuario es el aspecto más importante de cualquier aplicación. Una aplicación sin un interfaz fácil, impide que los usuarios saquen el máximo rendimiento del programa. Java proporciona los elementos básicos para construir decentes interfaces de usuario a través del AWT, y opciones para mejorarlas mediante Swing.

Introducción al AWT Una interfaz grafica de usuario (GUI) presenta una interfaz de imágenes

Introducción al AWT Una interfaz grafica de usuario (GUI) presenta una interfaz de imágenes con un programa. Las clases de java que usamos para construir GUI’s forman parte del paquete: java. awt. * La estructura básica del AWT se basa en Componentes y Contenedores.

Estructura de la AWT La estructura de la versión actual del AWT podemos resumirla

Estructura de la AWT La estructura de la versión actual del AWT podemos resumirla en los puntos que se exponen a continuación: Los Contenedores contienen Componentes, que son los controles básicos. No se usan posiciones fijas de los Componentes, sino que están situados a través de una disposición controlada (layouts) El común denominador de más bajo nivel se acerca al teclado, ratón y manejo de eventos Alto nivel de abstracción respecto al entorno de ventanas en que se ejecute la aplicación

Estructura de la AWT La arquitectura de la aplicación es dependiente del entorno de

Estructura de la AWT La arquitectura de la aplicación es dependiente del entorno de ventanas, en vez de tener un tamaño fijo. Es bastante dependiente de la máquina en que se ejecuta la aplicación (no puede asumir que un diálogo tendrá el mismo tamaño en cada máquina). Carece de un formato de recursos. No se puede separar el código de lo que es propiamente interface.

Componentes Son aquellos que permiten al usuario interactuar con la aplicación y proporcionar información

Componentes Son aquellos que permiten al usuario interactuar con la aplicación y proporcionar información desde el programa al usuario sobre el estado del programa. Típicos ejemplos de Componentes son los botones, barras de desplazamiento, etiquetas, listas, cajas de selección o campos de texto. En el AWT, todos los Componentes de la interface de usuario son instancias de la clase Component o uno de sus subtipos.

Colocación de Componentes La posición y tamaño de un componente en un contenedor es

Colocación de Componentes La posición y tamaño de un componente en un contenedor es determinado por un manejador del Layout. Usted puede controlar el tamaño o posición de componentes deshabilitando al encargado de la disposición. Usted puede utilizar set. Location(), set. Size(), o set. Bounds() del componente para localizarlo en el contenedor.

Contenedores Los Contenedores contienen y organizan la situación de los Componentes; además, los Contenedores

Contenedores Los Contenedores contienen y organizan la situación de los Componentes; además, los Contenedores son en sí mismos Componentes y como tales pueden ser situados dentro de otros Contenedores. También contienen el código necesario para el control de eventos, cambiar la forma del cursor o modificar el icono de la aplicación. En el AWT, todos los Contenedores son instancias de la clase Container o uno de sus subtipos.

Jerarquía de herencia java. AWT Object Event Checkbox. Group

Jerarquía de herencia java. AWT Object Event Checkbox. Group

Eventos ¿Qué es un evento? Un evento es una encapsulación de una información que

Eventos ¿Qué es un evento? Un evento es una encapsulación de una información que puede ser enviada a la aplicación de manera asíncrona. Los eventos pueden corresponder a acciones físicas (ratón y teclado) y acciones lógicas ¿Con cuales clases se trabajan los eventos? Java. util. Event. Object es la clase padre de todos los eventos, su subclase java. awt. event es la clase padre de todos los eventos AWT

Clase Event La clase Event intenta capturar las características fundamentales de todos los eventos

Clase Event La clase Event intenta capturar las características fundamentales de todos los eventos que genera el usuario. Los datos miembro de la clase Event son los que se indican a continuación: id - El tipo de evento que se ha producido target - Componente sobre el que se ha producido el evento x, y - Las coordenadas en donde se ha producido el evento relativas al Componente que actualmente está procesando ese evento. key - Para eventos de teclado, es la tecla que se ha pulsado. Su valor será el valor Unicode del carácter que representa la tecla.

Clase Event when - Instante en que se ha producido el evento modifiers -

Clase Event when - Instante en que se ha producido el evento modifiers - La combinación aritmética del estado en que se encuentran las teclas modificadoras Mays, Alt, Ctrl. click. Count - El número de clicks de ratón consecutivos. Sólo tiene importancia en los eventos MOUSE_DOWN arg - Es un argumento dependiente del evento. Para objetos Button, este objeto arg es un objeto String que contiene la etiqueta de texto del botón evt - El siguiente evento en una lista encadenada de eventos

Generación y Propagación de Eventos Cuando un usuario interactúa con la forma, el sistema

Generación y Propagación de Eventos Cuando un usuario interactúa con la forma, el sistema Java crea una instancia de la clase Event y llena sus datos miembro con la información necesaria para describir la acción. Es en ese momento cuando el sistema Java permite a la forma controlar el evento. Este control comienza por el Componente que recibe inicialmente el evento (por ejemplo, el botón que ha sido pulsado) y se desplaza hacia arriba en el árbol de Componentes, componente a componente, hasta que alcanza al Contenedor de la raíz del árbol.

Generación y Propagación de Eventos Durante este camino, cada Componente tiene oportunidad de ignorar

Generación y Propagación de Eventos Durante este camino, cada Componente tiene oportunidad de ignorar el evento o reaccionar ante él en una (o más) de las forma siguientes: Modificar los datos miembros de la instancia de Event Entrar en acción y realizar cálculos basados en la información contenida en el evento Indicar al sistema Java que el evento no debería propagarse más arriba en el árbol

Generación y Propagación de Eventos Botón Uno recibe action. . . Panel 2 recibe

Generación y Propagación de Eventos Botón Uno recibe action. . . Panel 2 recibe action. . . Panel 1 recibe action. . . Forma recibe action. . . Botón Dos recibe action. . . Panel 2 recibe action. . . Panel 1 recibe action. . . Forma recibe action. . .

Código controlador de eventos public boolean handle. Event( Event evt ) { if( evt.

Código controlador de eventos public boolean handle. Event( Event evt ) { if( evt. id == Event. ACTION_EVENT) { label 2. set. Text("Hola"); return true; } return( super. handle. Event( evt ) ); }

Código controlador de eventos public boolean handle. Event( Event evt ) { if( evt.

Código controlador de eventos public boolean handle. Event( Event evt ) { if( evt. target instanceof Button) { label 2. set. Text(label 2. get. Text(). value. Of(var)); var++; return true; } return( super. handle. Event( evt ) ); }

Tipos de Eventos FISICOS Component. Event Esconder, mover, redimensionar, mostrar Container. Event Añadir o

Tipos de Eventos FISICOS Component. Event Esconder, mover, redimensionar, mostrar Container. Event Añadir o eliminar un componente Focus. Event Obtener o perder el Focus Key. Event Pulsar, liberar o teclear una tecla Mouse. Event Entrar, salir, pulsar, soltar o hacer click Mouse. Motion. Event Arrastrar o mover Window. Event Maximizar, minimizar, abrir, cerrar, activar o desactivar

Tipos de Eventos SEMANTICOS Action. Event Una acción se ha ejecutado Adjustmend. Event Un

Tipos de Eventos SEMANTICOS Action. Event Una acción se ha ejecutado Adjustmend. Event Un valor se ha ajustado Item. Event Un estado a cambiado Text. Event Un texto ha cambiado

Manejadores de Layout por defecto Component Container Window Frame Dialog Border. Layout Panel Applet

Manejadores de Layout por defecto Component Container Window Frame Dialog Border. Layout Panel Applet Flow. Layout

Manejador Flow. Layout • • • Disposición por defecto para la clase panel Componentes

Manejador Flow. Layout • • • Disposición por defecto para la clase panel Componentes agregados de izquierda a derecha La alineación por defecto es centrado Utiliza componentes de tamaños preferidos Se usa su constructor para manejar su comportamiento

Manejador Border. Layout • Disposición por defecto para la clase frame • Componentes agregados

Manejador Border. Layout • Disposición por defecto para la clase frame • Componentes agregados en regiones específicas

import java. awt. *; Frame public class Frame. Example{ private Frame f; public Frame.

import java. awt. *; Frame public class Frame. Example{ private Frame f; public Frame. Example() { f = new Frame("Hello!"); } public void launch. Frame() { f. set. Size(170, 170); f. set. Background(Color. blue); f. set. Visible(true); } public static void main(String args[]) { Frame. Example gui. Window = new Frame. Example(); gui. Window. launch. Frame(); } }

Componentes AWT

Componentes AWT

Componentes AWT

Componentes AWT

Swing es una segunda generación del GUI toolkit de java. Se construye sobre AWT,

Swing es una segunda generación del GUI toolkit de java. Se construye sobre AWT, pero suplanta los componentes con versiones más livianas para mejorar la interfaz grafica. Hay muchos componentes mas: JTable, JTree, y JCombo. Box.

Swing import com. sun. java. swing. *; public class JHola. Mundo extends JFrame {

Swing import com. sun. java. swing. *; public class JHola. Mundo extends JFrame { public static void main( String argv[] ) { new JHola. Mundo(); } JHola. Mundo() { JLabel hola = new JLabel( "Hola Mundo!" ); get. Content. Pane(). add( hola, "Center" ); set. Size( 200, 100); set. Visible( true ); } }

Swing • No utiliza nada nativo (no existen clases "peer") • 100% Pure Java

Swing • No utiliza nada nativo (no existen clases "peer") • 100% Pure Java (excepto drag and drop). • L & F (Look and Feel) cargado automáticamente para la plataforma. • Podemos diseñar nuestro propio aspecto. • Swing no reemplaza a AWT. • Extiende los componentes evitando métodos nativos. • Objetivo los NC.

Swing Hay muchas mas clases que en el awt. Tienen el mismo nombre de

Swing Hay muchas mas clases que en el awt. Tienen el mismo nombre de algunas clases de awt, excepto una J inicial, como, por ejemplo, JFrame, JDialog, etc. Estas clases funcionan igual que las de awt, pero contienen muchos métodos más útiles. En swing están las Toolbar, es decir, unas pequeñas barras sobre las que hay unos botones. Se pueden mover dentro de las ventanas que las incluyen.

Swing Los botones de swing, como casi todos los demás JComponent, pueden tener tanto

Swing Los botones de swing, como casi todos los demás JComponent, pueden tener tanto una etiqueta como una imagen, imagen que puede cambiar según el estado del botón. Además en swing se pueden utilizar los Tooltip, es decir, aquellas sugerenias que salen automáticamente en un componente cuando el ratón se detiene en él durante un rato.

Clases Peer Clases que conectan la interface gráfica a implementaciones dependientes de la plataforma

Clases Peer Clases que conectan la interface gráfica a implementaciones dependientes de la plataforma (motif, windows)

Clases Peer El AWT usa una arquitectura peer : Cada componente AWT crea un

Clases Peer El AWT usa una arquitectura peer : Cada componente AWT crea un objeto paralelo llamado su peer (igual). Los objetos peer implementan interfaces en el paquete Java java. awt. peer. Por ejemplo, cada java. awt. Label usa un objeto peer que implementa java. awt. peer. Label. Peer. A cada componente AWT le corresponde una clase peer escrita en el código nativo del sistema operativo (C habitualmente), por lo que los componentes AWT son, por construcción, dependientes de la plataforma

Clases Peer

Clases Peer