El documento habla sobre el AWT (Abstract Windows Toolkit) y Swing en Java. El AWT permite construir interfaces gráficas de usuario mediante componentes y contenedores. Swing es una biblioteca que reemplaza algunos componentes AWT y ofrece layout managers. El documento también explica el modelo de eventos en Java y los diferentes tipos de eventos como acciones del ratón y teclado.
1. Curso Básico de Java Facilitador: Prof. Bassam Asfur Republica Bolivariana de Venezuela Área de Computación
2. EL AWT (ABSTRACT WINDOWS TOOLKIT) El AWT (Abstract Windows Toolkit) es la parte de Java que se ocupa de construir interfaces gráficas de usuario. Aunque el AWT ha estado presente en Java desde la versión 1.0, la versión 1.1 representó un cambio notable, sobre todo en lo que respecta al modelo de eventos. La versión 1.2 ha incorporado un modelo distinto de componentes llamado Swing, que también está disponible en la versión 1.1 como package adicional. La estructura básica del AWT se basa en Componentes y Contenedores . Estos últimos contienen Componentes posicionados a su respecto y son Componentes a su vez, de forma que los eventos pueden tratarse tanto en Contenedores como en Componentes.
3.
4. COMPONENTES Y CONTENEDORES Los Componentes permiten al usuario interactuar con la aplicación y proporcionar información desde el programa al usuario sobre el estado del programa. En el AWT, todos los Componentes de la interface de usuario son instancias de la clase Component o uno de sus subtipos. Los Componentes no se encuentran aislados, sino agrupados dentro de 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.
6. import java.awt.*; public class EjemploAWT extends Frame{ static final int HOR_TAMANO = 300; static final int VER_TAMANO = 200; public EjemploAWT(){ super( "Aplicación Java con AWT" ); pack(); resize(HOR_TAMANO,VER_TAMANO ); this.setVisible(true); } public static void main( String args[] ) { new EjemploAWT(); } } Un Ejemplo
7. Introducción a Swing Además del paquete java.awt, Java pone a disposición del programador el paquete javax.swing para crear unas interfaces gráficas.
8. El paquete Swing es parte de la JFC (Java Foundation Classes) en la plataforma Java. La JFC provee facilidades para ayudar a la gente a construir GUIs. Swing abarca componentes como botones, tablas, marcos, etc... Las componentes Swing se identifican porque pertenecen al paquete javax.swing . Swing existe desde la JDK 1.1 (como un agregado). Antes de la existencia de Swing, las interfaces gráficas con el usuario se realizaban a través de AWT (Abstract Window Toolkit), de quien Swing hereda todo el manejo de eventos. Usualmente, para toda componente AWT existe una componente Swing que la reemplaza, por ejemplo, la clase Button de AWT es reemplazada por la clase JButton de Swing (el nombre de todas las componentes Swing comienza con "J"). Introducción a Swing
9. Los layout managers o manejadores de composición, en traducción literal, ayudan a adaptar los diversos Componentes que se desean incorporar a un Panel , es decir, especifican la apariencia que tendrán los Componentes a la hora de colocarlos sobre un Contenedor, controlando tamaño y posición (layout) automáticamente. Manejadores de composición
10. FlowLayout Es el más simple y el que se utiliza por defecto en todos los Paneles si no se fuerza el uso de alguno de los otros. Los Componentes añadidos a un Panel con FlowLayout se encadenan en forma de lista. La cadena es horizontal, de izquierda a derecha, y se puede seleccionar el espaciado entre cada Componente. Manejadores de composición BorderLayout La composición BorderLayout (de borde) proporciona un esquema más complejo de colocación de los Componentes en un panel. La composición utiliza cinco zonas para colocar los Componentes sobre ellas: Norte, Sur, Este, Oeste y Centro. Es el layout o composición que se utilizan por defecto Frame y Dialog .
11. GridLayout La composición GridLayout proporciona gran flexibilidad para situar Componentes. El controlador de posicionamiento se crea con un determinado número de filas y columnas y los Componentes van dentro de las celdas de la tabla así definida. Layout Null Cuan no se quiere utilizar los manejadores por defecto que trae Java se inhabilita los Layout a través del Set Layout de la siguiente forma: setLayout(null); y posteriormente se usa el método setBounds Manejadores de composición
12. import java.awt.*; import java.awt.event.*; public class Ejemplo extends Frame { public Ejemplo(){ initComponents(); } private void initComponents() { Button boton = new Button(); setLayout(null); boton.setLabel("Un Boton"); boton.setBounds(15, 80, 100,50); add(boton); this.setSize(500, 300); this.setVisible(true); } public static void main(String args[]){ Ejemplo demo=new Ejemplo(); } } Ejemplo del setBounds
13. Modelo de eventos Los objetos sobre los que se producen los eventos (event sources) registran los objetos que habrán de gestionarlos (event listeners) Los event listeners habrán de disponer de los métodos adecuados, que serán llamados automáticamente cuando se produzca el evento Para que los event listeners dispongan de los métodos adecuados para gestionar los eventos, se les obliga a implementar una determinada interface Listener Interfaces Listener : se corresponden con los tipos de eventos que se pueden producir Gestión de Eventos
14. Eventos de alto nivel ActionEvent: Pulzar sobre botones o elegir comandos en menús AdjustmentEvent: Cambiar valores en barras de desplazamiento ItemEvent: Elegir valores TextEvent: Cambiar el texto Alto Nivel Bajo Nivel Tipos de Eventos
15. Eventos de bajo nivel ComponentEvent: Mover, cambiar tamaño, mostrar u ocultar un componente ContainerEvent: Añadir o eliminar un componente del container KeyEvent: Pulsar o soltar una tecla MouseEvent: Mover, arrastrar, pulsar y soltar con el ratón FocusEvent: Obtener o perder el focus WindowEvent: Acciones sobre una ventana Tipos de Eventos
16. Gestión de Eventos Componente evento Significado Button ActionEvent Pulsar el botón CheckBox ItemEvent Seleccionar o deseleccionar un item Choice ItemEvent Seleccionar o deseleccionar un item Component ComponentEvent Mover, cambiar, mostrar u ocultar un componente FocusEvent Obtener o perder Focus KeyEvent Pulsar o soltar tecla MouseEvent Mover, arrastrar, pulsar el ratón Container ContainerEvent Añadir o eliminar un componente de un contenedor
17. Gestión de Eventos Componente evento Significado List ActionEvent Hacer Doble Click sobre un ítem ItemEvent Seleccionar o deseleccionar un ítem MenuItem ActionEvent Seleccionar un ítem del menú Scrollbar AdjustmentEvent Cambiar el valor del Scrollbar TextComponent TextEvent Cambiar el texto Textfield ActionEvent Terminar de editar un texto pulsando Enter Window WindowEvent Abrir, cerrar, minimizar una ventana