SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
Curso de programación 
con AWT y Swing 
(Versión 5, JDK 1.5.0) 
Manual del alumno 
Autor: Cédric Simon 
SolucionJava.com 
Ing. Cedric Simon – Tel: 2268 0974 – Cel: 8888 2387 – Email: c e d r i c@s o l u c i o n j a v a . c om – Web: www.solucionjava.com
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 2 
Índice 
Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 
1 Introducción al curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
1.1 Objetivo de este curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
1.2 Manual del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
1.3 Ejercicios prácticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
1.4 Requisitos para atender a este curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 
2 Introducción al AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
2.1 Objetivo del capitulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
2.2 Que es el AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
2.3 Las partes de una Interface Gráfica de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 
3 El contenedor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 
4 Los componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
4.1 Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
4.2 Textos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
4.3 Botones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
4.4 Casillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 
4.5 Elecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.6 Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.7 Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.8 Scrollbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.9 Barra de menú . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.10 PopupMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.11 Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.11.1 Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.11.2 ScrollPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
4.12 Diseño del código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 
5 Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
5.1 Principio de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
5.2 Objetos al origen de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
5.3 Escuchadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 
5.3.1 Implementación en un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 
5.3.2 Implementación en dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 
6 Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
6.1 FlowLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
6.2 BorderLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
6.3 CardLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
6.4 GridLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 3 
6.5 GridBagLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 
7 Componentes Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
7.1 Versión SWING de los componentes AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
7.2 Nuevos componentes Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 
8 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 
9 Esquema de la BD 'curso' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 4 
1 Introducción al curso 
1.1 Objetivo de este curso 
En este curso vamos a ver cómo diseñar entorno gráfico para aplicaciones desarrolladas en 
lenguaje Java, utilizando el paquete AWT del Java. 
1.2 Manual del alumno 
Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este 
manual contiene un resumen de las materias que se van a estudiar durante el curso, pero el 
alumno debería de tomar notas personales para completas este manual. 
1.3 Ejercicios prácticos 
Para captar mejor la teoría, se harán muchos ejercicios con los alumnos, para probar la teoría y 
verificar la integración de la materia. 
También, el alumno podrá copiar sus códigos en un disquete al fin del curso para llevarse, con fin 
de seguir la práctica en su hogar. 
1.4 Requisitos para atender a este curso 
Una iniciación al lenguaje Java es requerida para seguir este curso. La creación y el manejo de 
objetos Java está considerada cómo asimilado antes de empezar este curso. 
Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones 
adicionales al profesor. 
Pero si aparece que el alumno no posee los requisitos mínimos para este curso, por respeto a los 
otros alumnos que ya poseen esta materia, el alumno podría ser traslado para otro curso en el 
futuro, cuando el cumplirá con los requisitos. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 5 
2 Introducción al AWT 
2.1 Objetivo del capitulo 
Al fin de este capitulo, el alumno tendrá una vista general del paquete AWT de Java, así como de 
sus características generales. 
2.2 Que es el AWT 
El AWT (Abstract Windows Toolkit) es la parte de Java que se ocupa de construir interfaces 
gráficas de usuario. Existen también otros modelos de componentes distintos como Swing. 
2.3 Las partes de una Interface Gráfica de Usuario 
La construcción de interfaces gráficas de usuario en Java se descompone en tres partes: 
- El contenedor (container), que es la ventana (o parte de la ventana) donde se situarán los 
componentes. 
- Los componentes, que son los menús, botones, áreas de texto etc... 
- El modelo de eventos. Cada acción producida por el usuario (con el ratón o el teclado), 
produce un evento que puede ser captado por Java, para permitir ejecutar un código en 
reacción a ese evento, si es necesario. Por defecto, Java no capta ninguno evento sobre 
ningún objeto. Hay que registrar el evento sobre el objeto para que sea captado por el 
Java. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 6 
3 El contenedor 
El contenedor es la ventana que va a contener todos los componentes de la aplicación. 
Cuando se crea la ventana, se debe de acompañarla de la creación del evento de cierro de 
ventana. Si se le olvida, solo podrá cerrar la ventana matando al proceso Java. El evento es un 
escuchador de ventana, que está atento al clic sobre el botón de cierra de ventana. 
La creación de un contenedor de hace creando una nueva clase extendiendo la clase Frame del 
AWT. 
Se necesita también importar el paquete java.awt.* y el paquete java.awt.event.*. 
Por defecto, la ventana no es visible, así hay que ponerla visible utilizando el método setVisible 
con parámetro verdadero. 
A la ventana, se le puede definir el título que aparecerá en la barra de título. 
También se puede definir muchas propiedades cómo su tamaño por defecto, si está maximizada, 
etc... Para más información sobre los métodos disponible, ver en la documentación de Java. 
Ejemplo: 
import java.awt.*; 
import java.awt.event.*; 
public class Ventana extends Frame { 
public Ventana() { 
try { 
this.addWindowListener(new WindowAdapter() { // Opens addWindowListener method 
public void windowClosing(WindowEvent e) { // Opens windowClosing method 
System.exit(0); 
} // Closes windowClosing method 
}); // Closes addWindowListener method 
this.setTitle("Mi primera ventana en Java"); 
// this.setSize(800, 570); // ventana de 800x570 pixeles 
// this.setExtendedState(this.MAXIMIZED_BOTH); // Maximizar la ventana 
this.setVisible(true); 
} catch (Exception ex) { 
ex.printStackTrace(); 
} 
} 
public static void main(String[] args) { 
new Ventana(); 
} 
} 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 7 
4 Los componentes 
Los componentes son los botones, etiquetas, áreas de textos, etc... que van a llenar la ventana, y 
permitirnos de enseñar la información y interaccionar con el usuario. 
Todos los componentes tienen métodos comunes, herencia de la clase Component, cómo por 
ejemplo el tamaño, el color, la fuente, etc... Pero cada componente tiene también sus propios 
métodos para sus acciones especificas. Para más información sobre los métodos disponible, ver 
en la documentación de Java. 
Los componentes se pueden incluir en la ventana principal, o en otro componente de tipo 
Container. 
Jerarquía de clase para los componentes AWT 
4.1 Etiquetas 
La etiquetas (Label) son textos que no se pueden cambiar directamente por el 
usuario (sólo lectura). 
4.2 Textos 
Existen dos tipos de componentes de texto diferente. Los dos permiten al 
usuario de modificar su valor. El primero, llamado TextField, se usa para 
contener textos de una sola línea. El secundo, TextArea, se usa para textos de 
varias líneas. 
4.3 Botones 
Los botones (Button) se utilizan para empezar acciones. 
4.4 Casillas 
Las casillas (CheckBox) se utilizan para marcar (o no) opciones. La casilla incluye 
un texto como una etiqueta. 
Cuando se utiliza un grupo de opciones (CheckBoxGroup), al contrario de las 
CheckBox, sólo una de las opciones propuestas se puede elegir. La elección de 
una borra elecciones previas. 
4.5 Elecciones 
Las elecciones (Choice) permite al usuario elegir un valor entre varias dentro de una lista. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 8 
4.6 Listas 
La lista (List) permite al usuario de elegir una o varias valores dentro de una lista. 
4.7 Canvas 
El Canvas crea un cuadro blanco en el cual se puede dibujar objetos gráficos. 
4.8 Scrollbar 
Un Scrollbar permite elegir valores de un rango de valores moviendo el cursor del ScrollBar. 
4.9 Barra de menú 
La barra de menú (MenuBar) permite crear una barra de menú con menús de varios niveles. 
4.10 PopupMenu 
Un PopupMenu permite sacar un menú de acciones de desde un componente. 
4.11 Contenedores 
4.11.1 Panel 
Es el contenedor más simple. Provee un espacio a donde se pueden poner otros componentes. 
4.11.2 ScrollPane 
Es un contenedor parecido al Panel, si no que tiene ScrollBar para moverse horizontalmente y 
verticalmente en el en caso que su tamaño es mas grande que el de la ventana. 
4.12 Diseño del código 
Para facilitar la lectura del código, es mejor de dividir el código en varias partes. 
No existe una manera estándar de dividir el código, y cada entorno gráfico de desarrollo tiene su 
propio formato. 
Si no utilizan un entorno de diseño gráfico de GUI, les propongo el formato siguiente: 
- declarar los componentes a nivel de la clase 
- crear a lo menos dos métodos: una para inicializar los componentes, y otro para los 
eventos 
- si hay varios paneles, se puede crear un método para manejar los layouts. 
- utilizar el constructor para llamar a los métodos creadas arriba, y crear la ventana. 
Ejemplo: 
import java.awt.*; 
import java.awt.event.*; 
public class VentanaCompleta extends Frame { 
// Mis componentes de clase 
Panel miPanel1 = new Panel(); 
Label miEtiqueta1 = new Label(); 
TextField miTexto1 = new TextField(); 
TextArea miTexto2 = new TextArea(); 
Button miBotón1 = new Button(); 
Checkbox miCasilla1 = new Checkbox(); 
Checkbox miCasilla2 = new Checkbox(); 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 9 
CheckboxGroup miGrupo1 = new CheckboxGroup(); 
Checkbox miCasilla3 = new Checkbox(); 
Checkbox miCasilla4 = new Checkbox(); 
Choice miElección1 = new Choice(); 
List miLista1 = new List(); 
Scrollbar miScrollBar1 = new Scrollbar(); 
ScrollPane miPanel2 = new ScrollPane(); 
MenuBar miMenu = new MenuBar(); 
Menu menuArchivos = new Menu("Archivos"); 
MenuItem guardar = new MenuItem("Guardar"); 
MenuItem salir = new MenuItem("Salir"); 
Ventana () { // constructor 
initComponentes(); 
initEvents(); 
testTextArea(); 
this.add(miPanel1); 
this.setMenuBar(miMenu); 
this.setSize(500,600); 
this.setVisible(true); 
} 
void initComponentes (){ 
miEtiqueta1.setText("Mi primera etiqueta"); 
miTexto1.setText("mi primer texto"); 
miTexto2.setText("Mi secundo texto"); 
miBotón1.setLabel("Mi primer botón"); 
miCasilla1.setLabel("Elección 1"); 
miCasilla2.setLabel("Elección 2"); 
miCasilla3.setLabel("Elección 3"); 
miCasilla4.setLabel("Elección 4"); 
miCasilla3.setCheckboxGroup(miGrupo1); 
miCasilla4.setCheckboxGroup(miGrupo1); 
miElección1.add("Uno"); 
miElección1.add("Dos"); 
miElección1.add("Tres"); 
miLista1.add("Primero"); 
miLista1.add("Secundo"); 
miLista1.add("Tercero"); 
miLista1.setMultipleMode(true); 
miScrollBar1.setValues( 
0, // initial value is 0 
10, // width of slider 
-100, 100); // range -100 to 100) 
miScrollBar1.setOrientation(Scrollbar.HORIZONTAL); 
miPanel1.add(miEtiqueta1); 
miPanel1.add(miTexto1); 
miPanel1.add(miTexto2); 
miPanel1.add(miBotón1); 
miPanel1.add(miCasilla1); 
miPanel1.add(miCasilla2); 
miPanel1.add(miCasilla3); 
miPanel1.add(miCasilla4); 
miPanel1.add(miElección1); 
miPanel1.add(miLista1); 
miPanel1.add(miScrollBar1); 
miPanel2.add(new TextField ("Para texto muy largo")); 
miPanel1.add(miPanel2); 
menuArchivos.add(guardar); 
menuArchivos.add(salir); 
miMenu.add(menuArchivos); 
} 
void initEvents(){ 
this.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
System.exit(0); 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 10 
} 
}); // Closes addWindowListener method 
miBotón1.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
try{ 
System.out.println("Hola"); 
} 
catch (Exception ee) { 
System.out.println(ee.getStackTrace()); 
} 
} 
});// Closes addActionListener method 
guardar.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
System.out.println("Guardar"); 
} 
}); // Closes addActionListener method 
salir.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) { 
System.exit(0); 
} 
}); // Closes addActionListener method 
} 
void testTextArea (){ 
String s = 
"This is a very long message " + 
"It should wrap when there is " + 
"no horizontal scrollbar."; 
miPanel1.add(new TextArea (s, 4, 15, 
TextArea.SCROLLBARS_NONE)); 
miPanel1.add(new TextArea (s, 4, 15, 
TextArea.SCROLLBARS_BOTH)); 
miPanel1.add(new TextArea (s, 4, 15, 
TextArea.SCROLLBARS_HORIZONTAL_ONLY)); 
miPanel1.add(new TextArea (s, 4, 15, 
TextArea.SCROLLBARS_VERTICAL_ONLY)); 
} 
} 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 11 
5 Eventos 
5.1 Principio de evento 
En Java, para poder interaccionar con el usuario, el Java tiene que ‘escuchar’ a las acciones del 
usuario. 
Por eso, hay de declarar escuchadores sobre los objetos (componentes) por los cuales esperamos 
una acción. 
5.2 Objetos al origen de eventos 
Existen diferentes objetos que pueden ser al origen de una acción. Cada objeto acepta un cierto 
tipo de escuchador. Sólo el objeto de tipo Component 
acepta varios escuchadores diferentes. 
Eventos de alto nivel 
Objeto Escuchador disponible 
Button 
List 
MenuItem 
ActionListener 
TextField 
Choice 
Checkbox 
Checkbox 
CheckboxMenuItem 
List 
ItemListener 
Scrollbar AdjustmentListener 
TextArea 
TextField TextListener 
Eventos de bajo nivel 
Objeto Escuchador disponible 
Component 
ComponentListener 
FocusListener 
KeyListener 
MouseListener 
MouseMotionListener 
Container ContainerListener 
Window WindowListener 
5.3 Escuchadores 
Cada escuchador (Listener) tiene uno o varios métodos posibles. Los escuchadores son interfaces 
o clase por los cuales los métodos no están implementadas, así que hay que implementarlas. 
Lista de métodos de cada escuchador 
Interface Method(s) 
ActionListener actionPerformed(ActionEvent e) 
AdjustmentListener adjustmentValueChanged(AdjustmentEvent e) 
ComponentListener 
componentHidden(ComponentEvent e) 
componentMoved(ComponentEvent e) 
componentResized(ComponentEvent e) 
componentShown(ComponentEvent e) 
ContainerListen er 
componentAdded(ContainerEvent e) 
componentRemoved(ContainerEvent e) 
FocusListener 
focusGained(FocusEvent e) 
focusLost(FocusEvent e) 
ItemListener itemStateChanged(ItemEvent e) 
KeyListener 
keyPressed(KeyEvent e) 
keyReleased(KeyEvent e) 
keyTyped(KeyEvent e) 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 12 
MouseListener 
mouseClicked(MouseEvent e) 
mouseEntered(MouseEvent e) 
mouseExited(MouseEvent e) 
mousePressed(MouseEvent e) 
mouseReleased(MouseEvent e) 
MouseMotionListener 
mouseDragged(MouseEvent e) 
mouseMoved(MouseEvent e) 
TextListener textValueChanged(TextEvent e) 
WindowListener 
windowActivated(WindowEvent e) 
windowClosed(WindowEvent e) 
windowClosing(WindowEvent e) 
windowDeactivated(WindowEvent e) 
windowDeiconified(WindowEvent e) 
windowIconified(WindowEvent e) 
windowOpened(WindowEvent e) 
La implementación del escuchador se puede hacer en uno o dos pasos. 
5.3.1 Implementación en un paso 
Cuando se implementa en un solo paso, el métodos del escuchador se sobre define directamente a 
la declaración del escuchador. 
Ejemplo: 
this.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
System.exit(0); 
} 
}); // Closes addWindowListener method 
5.3.2 Implementación en dos pasos 
Cuando el escuchador se podría reutilizar para otros componentes, se implementa en una clase 
aparte. 
Si el escuchador sólo se utilizara para este objeto, se puede definir utilizando una clase interna. Si 
tiene que ser disponible para otros objetos, es mejor ponerlo en una clase aparte. 
Ejemplos: 
class CierraVentana extends WindowAdapter { 
public void windowClosing(WindowEvent e) { 
// Action Command is not necessarily label 
System.exit(0); 
} 
} 
class MyActionListener implements ActionListener { 
public void actionPerformed(ActionEvent e) { 
// Action Command is not necessarily label 
String s = e.getActionCommand(); 
if (s.equals("Quit")) { 
System.exit(0); 
} 
else if (s.equals("Hello")) { 
System.out.println("Bon Jour"); 
} 
else { 
System.out.println(s + " selected"); 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 13 
} 
} 
} 
Remplazar initEvents() con el código siguiente: 
void initEvents(){ 
this.addWindowListener(new CierraVentana()); // Closes addWindowListener method 
miBotón1.addActionListener(new MyActionListener());// Closes addActionListener method 
guardar.addActionListener(new MyActionListener()); // Closes addActionListener method 
salir.addActionListener(new MyActionListener()); // Closes addActionListener method 
} 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 14 
6 Layouts 
Para manejar la presentación de los componentes, existen varios objetos que permiten presentar 
los componentes. 
6.1 FlowLayout 
El FlowLayout es el formato por defecto para los paneles. Es de lo más sencillo: el pone los 
componentes uno a lado de otro, pasando a la línea cuando es necesario (según el tamaño del 
panel). 
6.2 BorderLayout 
El BroderLayout es el formato por defecto para las ventanas (Frame, Dialog). El está divido en cinco 
áreas: North, South, East, West, y Center. 
6.3 CardLayout 
El CardLayout permite manejar dos o más paneles, cada panel utilizando su propio Layout Manager. 
6.4 GridLayout 
El GridLayout crea una tabla con células de tamaños iguales. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 15 
6.5 GridBagLayout 
El GridBagLayout es el Layout Manager más poderoso del AWT. El permite manejar la disposición de 
los componentes cómo una tabla, el la cual la células pueden expandir sobre varias columnas, y 
las líneas pueden tener varias alturas, así cómo las columnas pueden tener varios tamaño de 
ancho. 
El GridBagLayout utiliza un objeto GridBagConstraint que contiene el formato que se aplica a una 
celda. Antes de aplicar el formato, se modifica el formato según sus deseos (por defecto, tiene los 
valores del ultimo formato utilizado, o valores de defecto si es nuevo), y se aplica el formato al 
adjuntar el objeto en el contenedor. 
Ejemplo: 
Panel p = new Panel(); 
p.setLayout(GridBagLayout); 
TextField txtF1 = new TextField(10); 
GridBagConstraint c = new GridBagConstraint; 
c.ipadx = 100; 
c.anchor = GridBagConstraints.FIRST_LINE_START; 
c.gridwidth = 2; 
p.add(txtF1, c); 
Para pasar a la línea (llenando las columnas que quedan) el atributo gridwidth debe tener el valor 
siguiente: GridBagConstraints.REMAINDER. 
Cómo el GridBagLayout tiene muchas posibilidades de formato, aconsejo de crear una clase para 
manejarlo. Un ejemplo de clase para manejarlo está disponible aquí abajo. 
Ejemplo de clase: 
import java.awt.*; 
public class BuildGrid { 
BuildGrid(){} 
void setLabel(Panel p, GridBagConstraints c, Label p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setTextField(Panel p, GridBagConstraints c, TextField p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 16 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setTextArea(Panel p, GridBagConstraints c, TextArea p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setButton(Panel p, GridBagConstraints c, Button p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setList(Panel p, GridBagConstraints c, List p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setChoice(Panel p, GridBagConstraints c, Choice p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setCheckbox(Panel p, GridBagConstraints c, Checkbox p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setScrollbar(Panel p, GridBagConstraints c, Scrollbar p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setPanel(Panel p, GridBagConstraints c, Panel p_objeto, int p_ipadx, 
int p_ipady, 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 17 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
void setScrollPane(Panel p, GridBagConstraints c, ScrollPane p_objeto, int p_ipadx, 
int p_ipady, 
int p_colwidth, int p_anchor) { 
c.gridx = GridBagConstraints.RELATIVE; 
c.gridy = GridBagConstraints.RELATIVE; 
c.ipadx = p_ipadx; 
c.ipady = p_ipady; 
c.anchor = p_anchor; 
c.gridwidth = p_colwidth; 
p.add(p_objeto, c); 
} 
} 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 18 
7 Componentes Swing 
7.1 Versión SWING de los componentes AWT 
La versión Swing de los componentes AWT tienen los mismos nombres, pero con el prefijo 'J'. Así 
existe el JtextArea, Jlabel, Jframe, etc... 
Una de las difenrecias entre Swing y AWT es que en los componenetes Swing se puede usar el 
HTML para formatear el contenido. 
7.2 Nuevos componentes Swing 
Además de los compenentes que ya existen en AWT, la biblioteca Swint agrega muchos otros 
componentes como: 
Jslider 
JSpinner 
JColorChooser 
JEditorPane and JtextPane 
JFileChooser 
JTable 
JTree 
JProgressBar 
JSeparator 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 19 
JtoolTip 
JSplitPane 
JTabbedPane 
JtoolBar 
Para utilizar cada tipo de componente Swing, ver en la documentación Java en el CD del material 
del curso, así que en la documentación disponible en línea. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 20 
8 Ejercicios 
1) Crear una ventana y probar los diferente tipos de componentes. 
2) Crear un TextField, un botón, y un TextArea. Cuando se empuja el botón, el texto contenido en 
el TextField debe ser adjuntado al contenido del TextArea, y el valor del TextField vaciado. 
3) Crear un programa para maneja una lista de compras. Empujando el botón, el articulo 
mencionado está adjuntado a la lista de compras del super y/o de la venta según la casilla 
marcada. 
Ejercicio final: 
Crear una aplicación sencilla pero funcional, que se conecta a la base de datos del curso, y permite 
crear, modificar, y borrar empleados usando los componentes de AWT y/o Swing. 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 21 
9 Esquema de la BD 'curso' 
© Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida

Más contenido relacionado

La actualidad más candente

Índice del libro "Hacking con Drones" de 0xWord
Índice del libro "Hacking con Drones" de 0xWordÍndice del libro "Hacking con Drones" de 0xWord
Índice del libro "Hacking con Drones" de 0xWordTelefónica
 
Chamilo 1.8.7.1 Manual del docente - ES
Chamilo 1.8.7.1 Manual del docente - ESChamilo 1.8.7.1 Manual del docente - ES
Chamilo 1.8.7.1 Manual del docente - ESYannick Warnier
 
Libre office manual usuario calc
Libre office   manual usuario calcLibre office   manual usuario calc
Libre office manual usuario calctecnologiasiguala
 
Tutorialjoomla1.7
Tutorialjoomla1.7Tutorialjoomla1.7
Tutorialjoomla1.7cejarcon
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con PythonChema Alonso
 
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...Telefónica
 
Chamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ESChamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ESYannick Warnier
 
Máxima Seguridad en WordPress
Máxima Seguridad en WordPressMáxima Seguridad en WordPress
Máxima Seguridad en WordPressTelefónica
 
Geologia de los_cuerpos_igneos
Geologia de los_cuerpos_igneosGeologia de los_cuerpos_igneos
Geologia de los_cuerpos_igneosLuigi Asto Vilcas
 
3 geoestadistica
3 geoestadistica3 geoestadistica
3 geoestadisticaedmundo8
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital OpinasistemasPedro Chavez
 
Iniciación a la fotografía clásica (no digital)
Iniciación a la fotografía clásica (no digital)Iniciación a la fotografía clásica (no digital)
Iniciación a la fotografía clásica (no digital)Davit Amunarriz
 
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...Telefónica
 
Manual blackberry b8520_[www.gsmspain.com]
Manual blackberry b8520_[www.gsmspain.com]Manual blackberry b8520_[www.gsmspain.com]
Manual blackberry b8520_[www.gsmspain.com]panchochelo18
 
Curso java avanzado
Curso java avanzadoCurso java avanzado
Curso java avanzadoLener Romero
 

La actualidad más candente (19)

Índice del libro "Hacking con Drones" de 0xWord
Índice del libro "Hacking con Drones" de 0xWordÍndice del libro "Hacking con Drones" de 0xWord
Índice del libro "Hacking con Drones" de 0xWord
 
Chamilo 1.8.7.1 Manual del docente - ES
Chamilo 1.8.7.1 Manual del docente - ESChamilo 1.8.7.1 Manual del docente - ES
Chamilo 1.8.7.1 Manual del docente - ES
 
Libre office manual usuario calc
Libre office   manual usuario calcLibre office   manual usuario calc
Libre office manual usuario calc
 
Tutorialjoomla1.7
Tutorialjoomla1.7Tutorialjoomla1.7
Tutorialjoomla1.7
 
Hacking con Python
Hacking con PythonHacking con Python
Hacking con Python
 
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...
Índice de libro: "Spring Boot & Angular: Desarrollo de WebApps Seguras. Tomo ...
 
Curso java basico
Curso java basicoCurso java basico
Curso java basico
 
Chamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ESChamilo 1.8.7.1 Manual del alumno - ES
Chamilo 1.8.7.1 Manual del alumno - ES
 
Manual de moodle
Manual de moodleManual de moodle
Manual de moodle
 
Máxima Seguridad en WordPress
Máxima Seguridad en WordPressMáxima Seguridad en WordPress
Máxima Seguridad en WordPress
 
Geologia de los_cuerpos_igneos
Geologia de los_cuerpos_igneosGeologia de los_cuerpos_igneos
Geologia de los_cuerpos_igneos
 
3 geoestadistica
3 geoestadistica3 geoestadistica
3 geoestadistica
 
Diario Digital Opinasistemas
Diario Digital OpinasistemasDiario Digital Opinasistemas
Diario Digital Opinasistemas
 
Iniciación a la fotografía clásica (no digital)
Iniciación a la fotografía clásica (no digital)Iniciación a la fotografía clásica (no digital)
Iniciación a la fotografía clásica (no digital)
 
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...
Índice del libro "Spring Boot & Angular: Desarrollo de Webapps seguras" de 0x...
 
Manual civilcad
Manual civilcadManual civilcad
Manual civilcad
 
Tutorial moodle, paideia pucp
Tutorial moodle, paideia pucpTutorial moodle, paideia pucp
Tutorial moodle, paideia pucp
 
Manual blackberry b8520_[www.gsmspain.com]
Manual blackberry b8520_[www.gsmspain.com]Manual blackberry b8520_[www.gsmspain.com]
Manual blackberry b8520_[www.gsmspain.com]
 
Curso java avanzado
Curso java avanzadoCurso java avanzado
Curso java avanzado
 

Destacado

PLANTILLA NORMA INCONTEC
PLANTILLA NORMA INCONTEC PLANTILLA NORMA INCONTEC
PLANTILLA NORMA INCONTEC juanjo1412
 
Sspi spum day 2011 eg
Sspi spum day 2011 egSspi spum day 2011 eg
Sspi spum day 2011 egSSPI Brasil
 
Ses ses-6-jurandir pitsch-sspi2013
Ses ses-6-jurandir pitsch-sspi2013Ses ses-6-jurandir pitsch-sspi2013
Ses ses-6-jurandir pitsch-sspi2013SSPI Brasil
 
Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010SSPI Brasil
 
Telesat edson meira-sspi2013
Telesat edson meira-sspi2013Telesat edson meira-sspi2013
Telesat edson meira-sspi2013SSPI Brasil
 
Star one sspi_vsat_day_2010
Star one sspi_vsat_day_2010Star one sspi_vsat_day_2010
Star one sspi_vsat_day_2010SSPI Brasil
 
Problemas Algebraicos
Problemas AlgebraicosProblemas Algebraicos
Problemas AlgebraicosUTT
 
AnaClaudiaAlmeidaTaveira
AnaClaudiaAlmeidaTaveiraAnaClaudiaAlmeidaTaveira
AnaClaudiaAlmeidaTaveiraAna Taveira
 
Hughes rezende-bc-day-2009
Hughes rezende-bc-day-2009Hughes rezende-bc-day-2009
Hughes rezende-bc-day-2009SSPI Brasil
 
Broadcast day 2011_comtech
Broadcast day 2011_comtechBroadcast day 2011_comtech
Broadcast day 2011_comtechSSPI Brasil
 
Actividad de aprendizaje 3
Actividad de aprendizaje 3Actividad de aprendizaje 3
Actividad de aprendizaje 3Demetrio Silva
 
El desempleo
El desempleoEl desempleo
El desempleoJacky95
 
Tecnologia para as pequenas e médias empresas, numa abordagem simples
Tecnologia para as pequenas e médias empresas, numa abordagem simplesTecnologia para as pequenas e médias empresas, numa abordagem simples
Tecnologia para as pequenas e médias empresas, numa abordagem simplesFlávia Fonseca da Silva
 
Brayan marroquin- practica 2
Brayan marroquin- practica 2Brayan marroquin- practica 2
Brayan marroquin- practica 2brayanMB97
 
Acheflan bula Completa PDF
Acheflan bula Completa PDFAcheflan bula Completa PDF
Acheflan bula Completa PDFTiago Albino
 
INTERNSHIP PORTFOLIO
INTERNSHIP PORTFOLIOINTERNSHIP PORTFOLIO
INTERNSHIP PORTFOLIObharathdl
 
Presentación módulo 2
Presentación módulo 2Presentación módulo 2
Presentación módulo 2TeresitaEstela
 
Recomendaciones para evaluar los contenidos digitales
Recomendaciones para evaluar los contenidos digitalesRecomendaciones para evaluar los contenidos digitales
Recomendaciones para evaluar los contenidos digitalesyakylorena
 

Destacado (20)

PLANTILLA NORMA INCONTEC
PLANTILLA NORMA INCONTEC PLANTILLA NORMA INCONTEC
PLANTILLA NORMA INCONTEC
 
Sspi spum day 2011 eg
Sspi spum day 2011 egSspi spum day 2011 eg
Sspi spum day 2011 eg
 
Ses ses-6-jurandir pitsch-sspi2013
Ses ses-6-jurandir pitsch-sspi2013Ses ses-6-jurandir pitsch-sspi2013
Ses ses-6-jurandir pitsch-sspi2013
 
Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010Newtec sspi vsat_day_2010
Newtec sspi vsat_day_2010
 
Trabalho de ai 11k
Trabalho de ai   11kTrabalho de ai   11k
Trabalho de ai 11k
 
Telesat edson meira-sspi2013
Telesat edson meira-sspi2013Telesat edson meira-sspi2013
Telesat edson meira-sspi2013
 
Star one sspi_vsat_day_2010
Star one sspi_vsat_day_2010Star one sspi_vsat_day_2010
Star one sspi_vsat_day_2010
 
Problemas Algebraicos
Problemas AlgebraicosProblemas Algebraicos
Problemas Algebraicos
 
AnaClaudiaAlmeidaTaveira
AnaClaudiaAlmeidaTaveiraAnaClaudiaAlmeidaTaveira
AnaClaudiaAlmeidaTaveira
 
Hughes rezende-bc-day-2009
Hughes rezende-bc-day-2009Hughes rezende-bc-day-2009
Hughes rezende-bc-day-2009
 
Broadcast day 2011_comtech
Broadcast day 2011_comtechBroadcast day 2011_comtech
Broadcast day 2011_comtech
 
Actividad de aprendizaje 3
Actividad de aprendizaje 3Actividad de aprendizaje 3
Actividad de aprendizaje 3
 
El desempleo
El desempleoEl desempleo
El desempleo
 
Tecnologia para as pequenas e médias empresas, numa abordagem simples
Tecnologia para as pequenas e médias empresas, numa abordagem simplesTecnologia para as pequenas e médias empresas, numa abordagem simples
Tecnologia para as pequenas e médias empresas, numa abordagem simples
 
Brayan marroquin- practica 2
Brayan marroquin- practica 2Brayan marroquin- practica 2
Brayan marroquin- practica 2
 
Acheflan bula Completa PDF
Acheflan bula Completa PDFAcheflan bula Completa PDF
Acheflan bula Completa PDF
 
INTERNSHIP PORTFOLIO
INTERNSHIP PORTFOLIOINTERNSHIP PORTFOLIO
INTERNSHIP PORTFOLIO
 
Ics bloque ii
Ics bloque ii Ics bloque ii
Ics bloque ii
 
Presentación módulo 2
Presentación módulo 2Presentación módulo 2
Presentación módulo 2
 
Recomendaciones para evaluar los contenidos digitales
Recomendaciones para evaluar los contenidos digitalesRecomendaciones para evaluar los contenidos digitales
Recomendaciones para evaluar los contenidos digitales
 

Similar a CursoAWTSwingGUI

Lego education we do teacher's guide (wedo)
Lego education we do teacher's guide (wedo)Lego education we do teacher's guide (wedo)
Lego education we do teacher's guide (wedo)John Carabal
 
Guía del profesor oficial de LEGO WeDo
Guía del profesor oficial de LEGO WeDoGuía del profesor oficial de LEGO WeDo
Guía del profesor oficial de LEGO WeDoproyectoste
 
Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3unad
 
Manual desarrollador
Manual desarrolladorManual desarrollador
Manual desarrolladorebm89
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010ANDRES SALAZAR
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010proneulsa
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010KOKO253
 
Computacion tic integracion
Computacion tic integracionComputacion tic integracion
Computacion tic integracionJhonatan C-l
 
Scratch guía informatica creativa
Scratch guía informatica creativaScratch guía informatica creativa
Scratch guía informatica creativaCodemás
 
Manual activ inspire r180219
Manual activ inspire r180219Manual activ inspire r180219
Manual activ inspire r180219adolfogcasanova
 
Manual activinspire 1
Manual activinspire 1Manual activinspire 1
Manual activinspire 1jordillorens
 
Chamilo 1.8.7.1-docente-manual-v0.1.2
Chamilo 1.8.7.1-docente-manual-v0.1.2Chamilo 1.8.7.1-docente-manual-v0.1.2
Chamilo 1.8.7.1-docente-manual-v0.1.2Elfren Chavez
 
Introduccion a xhtml
Introduccion a xhtmlIntroduccion a xhtml
Introduccion a xhtmlall12cesar
 

Similar a CursoAWTSwingGUI (20)

Lego education we do teacher's guide (wedo)
Lego education we do teacher's guide (wedo)Lego education we do teacher's guide (wedo)
Lego education we do teacher's guide (wedo)
 
Guía del profesor oficial de LEGO WeDo
Guía del profesor oficial de LEGO WeDoGuía del profesor oficial de LEGO WeDo
Guía del profesor oficial de LEGO WeDo
 
Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3Elastix a ritmo de merengue v-1-3
Elastix a ritmo de merengue v-1-3
 
Manual desarrollador
Manual desarrolladorManual desarrollador
Manual desarrollador
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010
 
Manual microsoft office excel 2010
Manual microsoft office excel 2010Manual microsoft office excel 2010
Manual microsoft office excel 2010
 
Manual presto 8.8 en español
Manual presto 8.8 en españolManual presto 8.8 en español
Manual presto 8.8 en español
 
Computacion tic integracion
Computacion tic integracionComputacion tic integracion
Computacion tic integracion
 
RIEGO LOCALIZADO.pdf
RIEGO LOCALIZADO.pdfRIEGO LOCALIZADO.pdf
RIEGO LOCALIZADO.pdf
 
Scratch guía informatica creativa
Scratch guía informatica creativaScratch guía informatica creativa
Scratch guía informatica creativa
 
Manual activ inspire r180219
Manual activ inspire r180219Manual activ inspire r180219
Manual activ inspire r180219
 
Manual activinspire 1
Manual activinspire 1Manual activinspire 1
Manual activinspire 1
 
Chamilo 1.8.7.1-docente-manual-v0.1.2
Chamilo 1.8.7.1-docente-manual-v0.1.2Chamilo 1.8.7.1-docente-manual-v0.1.2
Chamilo 1.8.7.1-docente-manual-v0.1.2
 
Manual pc simu
Manual pc simu  Manual pc simu
Manual pc simu
 
Introduccion a xhtml
Introduccion a xhtmlIntroduccion a xhtml
Introduccion a xhtml
 
5. desarrollador web profesional
5. desarrollador web profesional5. desarrollador web profesional
5. desarrollador web profesional
 
Introduccion a xhtml
Introduccion a xhtmlIntroduccion a xhtml
Introduccion a xhtml
 
Introduccion a xhtml
Introduccion a xhtmlIntroduccion a xhtml
Introduccion a xhtml
 

CursoAWTSwingGUI

  • 1. Curso de programación con AWT y Swing (Versión 5, JDK 1.5.0) Manual del alumno Autor: Cédric Simon SolucionJava.com Ing. Cedric Simon – Tel: 2268 0974 – Cel: 8888 2387 – Email: c e d r i c@s o l u c i o n j a v a . c om – Web: www.solucionjava.com
  • 2. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 2 Índice Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1 Introducción al curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1 Objetivo de este curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 Manual del alumno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3 Ejercicios prácticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Requisitos para atender a este curso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 Introducción al AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Objetivo del capitulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 Que es el AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 Las partes de una Interface Gráfica de Usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 El contenedor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4 Los componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1 Etiquetas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 Textos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.3 Botones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.4 Casillas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.5 Elecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.6 Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.7 Canvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.8 Scrollbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.9 Barra de menú . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.10 PopupMenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.11 Contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.11.1 Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.11.2 ScrollPane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.12 Diseño del código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5 Eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.1 Principio de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2 Objetos al origen de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3 Escuchadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.3.1 Implementación en un paso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.3.2 Implementación en dos pasos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 6 Layouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.1 FlowLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.2 BorderLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.3 CardLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.4 GridLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 3. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 3 6.5 GridBagLayout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7 Componentes Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 7.1 Versión SWING de los componentes AWT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 7.2 Nuevos componentes Swing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 8 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9 Esquema de la BD 'curso' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 4. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 4 1 Introducción al curso 1.1 Objetivo de este curso En este curso vamos a ver cómo diseñar entorno gráfico para aplicaciones desarrolladas en lenguaje Java, utilizando el paquete AWT del Java. 1.2 Manual del alumno Este manual del alumno es una ayuda para el alumno, para tenga un recuerdo del curso. Este manual contiene un resumen de las materias que se van a estudiar durante el curso, pero el alumno debería de tomar notas personales para completas este manual. 1.3 Ejercicios prácticos Para captar mejor la teoría, se harán muchos ejercicios con los alumnos, para probar la teoría y verificar la integración de la materia. También, el alumno podrá copiar sus códigos en un disquete al fin del curso para llevarse, con fin de seguir la práctica en su hogar. 1.4 Requisitos para atender a este curso Una iniciación al lenguaje Java es requerida para seguir este curso. La creación y el manejo de objetos Java está considerada cómo asimilado antes de empezar este curso. Si el alumno tiene dificultades en un u otro capitulo, el debe sentirse libre de pedir explicaciones adicionales al profesor. Pero si aparece que el alumno no posee los requisitos mínimos para este curso, por respeto a los otros alumnos que ya poseen esta materia, el alumno podría ser traslado para otro curso en el futuro, cuando el cumplirá con los requisitos. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 5. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 5 2 Introducción al AWT 2.1 Objetivo del capitulo Al fin de este capitulo, el alumno tendrá una vista general del paquete AWT de Java, así como de sus características generales. 2.2 Que es el AWT El AWT (Abstract Windows Toolkit) es la parte de Java que se ocupa de construir interfaces gráficas de usuario. Existen también otros modelos de componentes distintos como Swing. 2.3 Las partes de una Interface Gráfica de Usuario La construcción de interfaces gráficas de usuario en Java se descompone en tres partes: - El contenedor (container), que es la ventana (o parte de la ventana) donde se situarán los componentes. - Los componentes, que son los menús, botones, áreas de texto etc... - El modelo de eventos. Cada acción producida por el usuario (con el ratón o el teclado), produce un evento que puede ser captado por Java, para permitir ejecutar un código en reacción a ese evento, si es necesario. Por defecto, Java no capta ninguno evento sobre ningún objeto. Hay que registrar el evento sobre el objeto para que sea captado por el Java. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 6. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 6 3 El contenedor El contenedor es la ventana que va a contener todos los componentes de la aplicación. Cuando se crea la ventana, se debe de acompañarla de la creación del evento de cierro de ventana. Si se le olvida, solo podrá cerrar la ventana matando al proceso Java. El evento es un escuchador de ventana, que está atento al clic sobre el botón de cierra de ventana. La creación de un contenedor de hace creando una nueva clase extendiendo la clase Frame del AWT. Se necesita también importar el paquete java.awt.* y el paquete java.awt.event.*. Por defecto, la ventana no es visible, así hay que ponerla visible utilizando el método setVisible con parámetro verdadero. A la ventana, se le puede definir el título que aparecerá en la barra de título. También se puede definir muchas propiedades cómo su tamaño por defecto, si está maximizada, etc... Para más información sobre los métodos disponible, ver en la documentación de Java. Ejemplo: import java.awt.*; import java.awt.event.*; public class Ventana extends Frame { public Ventana() { try { this.addWindowListener(new WindowAdapter() { // Opens addWindowListener method public void windowClosing(WindowEvent e) { // Opens windowClosing method System.exit(0); } // Closes windowClosing method }); // Closes addWindowListener method this.setTitle("Mi primera ventana en Java"); // this.setSize(800, 570); // ventana de 800x570 pixeles // this.setExtendedState(this.MAXIMIZED_BOTH); // Maximizar la ventana this.setVisible(true); } catch (Exception ex) { ex.printStackTrace(); } } public static void main(String[] args) { new Ventana(); } } © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 7. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 7 4 Los componentes Los componentes son los botones, etiquetas, áreas de textos, etc... que van a llenar la ventana, y permitirnos de enseñar la información y interaccionar con el usuario. Todos los componentes tienen métodos comunes, herencia de la clase Component, cómo por ejemplo el tamaño, el color, la fuente, etc... Pero cada componente tiene también sus propios métodos para sus acciones especificas. Para más información sobre los métodos disponible, ver en la documentación de Java. Los componentes se pueden incluir en la ventana principal, o en otro componente de tipo Container. Jerarquía de clase para los componentes AWT 4.1 Etiquetas La etiquetas (Label) son textos que no se pueden cambiar directamente por el usuario (sólo lectura). 4.2 Textos Existen dos tipos de componentes de texto diferente. Los dos permiten al usuario de modificar su valor. El primero, llamado TextField, se usa para contener textos de una sola línea. El secundo, TextArea, se usa para textos de varias líneas. 4.3 Botones Los botones (Button) se utilizan para empezar acciones. 4.4 Casillas Las casillas (CheckBox) se utilizan para marcar (o no) opciones. La casilla incluye un texto como una etiqueta. Cuando se utiliza un grupo de opciones (CheckBoxGroup), al contrario de las CheckBox, sólo una de las opciones propuestas se puede elegir. La elección de una borra elecciones previas. 4.5 Elecciones Las elecciones (Choice) permite al usuario elegir un valor entre varias dentro de una lista. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 8. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 8 4.6 Listas La lista (List) permite al usuario de elegir una o varias valores dentro de una lista. 4.7 Canvas El Canvas crea un cuadro blanco en el cual se puede dibujar objetos gráficos. 4.8 Scrollbar Un Scrollbar permite elegir valores de un rango de valores moviendo el cursor del ScrollBar. 4.9 Barra de menú La barra de menú (MenuBar) permite crear una barra de menú con menús de varios niveles. 4.10 PopupMenu Un PopupMenu permite sacar un menú de acciones de desde un componente. 4.11 Contenedores 4.11.1 Panel Es el contenedor más simple. Provee un espacio a donde se pueden poner otros componentes. 4.11.2 ScrollPane Es un contenedor parecido al Panel, si no que tiene ScrollBar para moverse horizontalmente y verticalmente en el en caso que su tamaño es mas grande que el de la ventana. 4.12 Diseño del código Para facilitar la lectura del código, es mejor de dividir el código en varias partes. No existe una manera estándar de dividir el código, y cada entorno gráfico de desarrollo tiene su propio formato. Si no utilizan un entorno de diseño gráfico de GUI, les propongo el formato siguiente: - declarar los componentes a nivel de la clase - crear a lo menos dos métodos: una para inicializar los componentes, y otro para los eventos - si hay varios paneles, se puede crear un método para manejar los layouts. - utilizar el constructor para llamar a los métodos creadas arriba, y crear la ventana. Ejemplo: import java.awt.*; import java.awt.event.*; public class VentanaCompleta extends Frame { // Mis componentes de clase Panel miPanel1 = new Panel(); Label miEtiqueta1 = new Label(); TextField miTexto1 = new TextField(); TextArea miTexto2 = new TextArea(); Button miBotón1 = new Button(); Checkbox miCasilla1 = new Checkbox(); Checkbox miCasilla2 = new Checkbox(); © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 9. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 9 CheckboxGroup miGrupo1 = new CheckboxGroup(); Checkbox miCasilla3 = new Checkbox(); Checkbox miCasilla4 = new Checkbox(); Choice miElección1 = new Choice(); List miLista1 = new List(); Scrollbar miScrollBar1 = new Scrollbar(); ScrollPane miPanel2 = new ScrollPane(); MenuBar miMenu = new MenuBar(); Menu menuArchivos = new Menu("Archivos"); MenuItem guardar = new MenuItem("Guardar"); MenuItem salir = new MenuItem("Salir"); Ventana () { // constructor initComponentes(); initEvents(); testTextArea(); this.add(miPanel1); this.setMenuBar(miMenu); this.setSize(500,600); this.setVisible(true); } void initComponentes (){ miEtiqueta1.setText("Mi primera etiqueta"); miTexto1.setText("mi primer texto"); miTexto2.setText("Mi secundo texto"); miBotón1.setLabel("Mi primer botón"); miCasilla1.setLabel("Elección 1"); miCasilla2.setLabel("Elección 2"); miCasilla3.setLabel("Elección 3"); miCasilla4.setLabel("Elección 4"); miCasilla3.setCheckboxGroup(miGrupo1); miCasilla4.setCheckboxGroup(miGrupo1); miElección1.add("Uno"); miElección1.add("Dos"); miElección1.add("Tres"); miLista1.add("Primero"); miLista1.add("Secundo"); miLista1.add("Tercero"); miLista1.setMultipleMode(true); miScrollBar1.setValues( 0, // initial value is 0 10, // width of slider -100, 100); // range -100 to 100) miScrollBar1.setOrientation(Scrollbar.HORIZONTAL); miPanel1.add(miEtiqueta1); miPanel1.add(miTexto1); miPanel1.add(miTexto2); miPanel1.add(miBotón1); miPanel1.add(miCasilla1); miPanel1.add(miCasilla2); miPanel1.add(miCasilla3); miPanel1.add(miCasilla4); miPanel1.add(miElección1); miPanel1.add(miLista1); miPanel1.add(miScrollBar1); miPanel2.add(new TextField ("Para texto muy largo")); miPanel1.add(miPanel2); menuArchivos.add(guardar); menuArchivos.add(salir); miMenu.add(menuArchivos); } void initEvents(){ this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 10. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 10 } }); // Closes addWindowListener method miBotón1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try{ System.out.println("Hola"); } catch (Exception ee) { System.out.println(ee.getStackTrace()); } } });// Closes addActionListener method guardar.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("Guardar"); } }); // Closes addActionListener method salir.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); // Closes addActionListener method } void testTextArea (){ String s = "This is a very long message " + "It should wrap when there is " + "no horizontal scrollbar."; miPanel1.add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_NONE)); miPanel1.add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_BOTH)); miPanel1.add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_HORIZONTAL_ONLY)); miPanel1.add(new TextArea (s, 4, 15, TextArea.SCROLLBARS_VERTICAL_ONLY)); } } © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 11. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 11 5 Eventos 5.1 Principio de evento En Java, para poder interaccionar con el usuario, el Java tiene que ‘escuchar’ a las acciones del usuario. Por eso, hay de declarar escuchadores sobre los objetos (componentes) por los cuales esperamos una acción. 5.2 Objetos al origen de eventos Existen diferentes objetos que pueden ser al origen de una acción. Cada objeto acepta un cierto tipo de escuchador. Sólo el objeto de tipo Component acepta varios escuchadores diferentes. Eventos de alto nivel Objeto Escuchador disponible Button List MenuItem ActionListener TextField Choice Checkbox Checkbox CheckboxMenuItem List ItemListener Scrollbar AdjustmentListener TextArea TextField TextListener Eventos de bajo nivel Objeto Escuchador disponible Component ComponentListener FocusListener KeyListener MouseListener MouseMotionListener Container ContainerListener Window WindowListener 5.3 Escuchadores Cada escuchador (Listener) tiene uno o varios métodos posibles. Los escuchadores son interfaces o clase por los cuales los métodos no están implementadas, así que hay que implementarlas. Lista de métodos de cada escuchador Interface Method(s) ActionListener actionPerformed(ActionEvent e) AdjustmentListener adjustmentValueChanged(AdjustmentEvent e) ComponentListener componentHidden(ComponentEvent e) componentMoved(ComponentEvent e) componentResized(ComponentEvent e) componentShown(ComponentEvent e) ContainerListen er componentAdded(ContainerEvent e) componentRemoved(ContainerEvent e) FocusListener focusGained(FocusEvent e) focusLost(FocusEvent e) ItemListener itemStateChanged(ItemEvent e) KeyListener keyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e) © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 12. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 12 MouseListener mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) MouseMotionListener mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) TextListener textValueChanged(TextEvent e) WindowListener windowActivated(WindowEvent e) windowClosed(WindowEvent e) windowClosing(WindowEvent e) windowDeactivated(WindowEvent e) windowDeiconified(WindowEvent e) windowIconified(WindowEvent e) windowOpened(WindowEvent e) La implementación del escuchador se puede hacer en uno o dos pasos. 5.3.1 Implementación en un paso Cuando se implementa en un solo paso, el métodos del escuchador se sobre define directamente a la declaración del escuchador. Ejemplo: this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); // Closes addWindowListener method 5.3.2 Implementación en dos pasos Cuando el escuchador se podría reutilizar para otros componentes, se implementa en una clase aparte. Si el escuchador sólo se utilizara para este objeto, se puede definir utilizando una clase interna. Si tiene que ser disponible para otros objetos, es mejor ponerlo en una clase aparte. Ejemplos: class CierraVentana extends WindowAdapter { public void windowClosing(WindowEvent e) { // Action Command is not necessarily label System.exit(0); } } class MyActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { // Action Command is not necessarily label String s = e.getActionCommand(); if (s.equals("Quit")) { System.exit(0); } else if (s.equals("Hello")) { System.out.println("Bon Jour"); } else { System.out.println(s + " selected"); © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 13. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 13 } } } Remplazar initEvents() con el código siguiente: void initEvents(){ this.addWindowListener(new CierraVentana()); // Closes addWindowListener method miBotón1.addActionListener(new MyActionListener());// Closes addActionListener method guardar.addActionListener(new MyActionListener()); // Closes addActionListener method salir.addActionListener(new MyActionListener()); // Closes addActionListener method } © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 14. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 14 6 Layouts Para manejar la presentación de los componentes, existen varios objetos que permiten presentar los componentes. 6.1 FlowLayout El FlowLayout es el formato por defecto para los paneles. Es de lo más sencillo: el pone los componentes uno a lado de otro, pasando a la línea cuando es necesario (según el tamaño del panel). 6.2 BorderLayout El BroderLayout es el formato por defecto para las ventanas (Frame, Dialog). El está divido en cinco áreas: North, South, East, West, y Center. 6.3 CardLayout El CardLayout permite manejar dos o más paneles, cada panel utilizando su propio Layout Manager. 6.4 GridLayout El GridLayout crea una tabla con células de tamaños iguales. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 15. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 15 6.5 GridBagLayout El GridBagLayout es el Layout Manager más poderoso del AWT. El permite manejar la disposición de los componentes cómo una tabla, el la cual la células pueden expandir sobre varias columnas, y las líneas pueden tener varias alturas, así cómo las columnas pueden tener varios tamaño de ancho. El GridBagLayout utiliza un objeto GridBagConstraint que contiene el formato que se aplica a una celda. Antes de aplicar el formato, se modifica el formato según sus deseos (por defecto, tiene los valores del ultimo formato utilizado, o valores de defecto si es nuevo), y se aplica el formato al adjuntar el objeto en el contenedor. Ejemplo: Panel p = new Panel(); p.setLayout(GridBagLayout); TextField txtF1 = new TextField(10); GridBagConstraint c = new GridBagConstraint; c.ipadx = 100; c.anchor = GridBagConstraints.FIRST_LINE_START; c.gridwidth = 2; p.add(txtF1, c); Para pasar a la línea (llenando las columnas que quedan) el atributo gridwidth debe tener el valor siguiente: GridBagConstraints.REMAINDER. Cómo el GridBagLayout tiene muchas posibilidades de formato, aconsejo de crear una clase para manejarlo. Un ejemplo de clase para manejarlo está disponible aquí abajo. Ejemplo de clase: import java.awt.*; public class BuildGrid { BuildGrid(){} void setLabel(Panel p, GridBagConstraints c, Label p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setTextField(Panel p, GridBagConstraints c, TextField p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 16. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 16 c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setTextArea(Panel p, GridBagConstraints c, TextArea p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setButton(Panel p, GridBagConstraints c, Button p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setList(Panel p, GridBagConstraints c, List p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setChoice(Panel p, GridBagConstraints c, Choice p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setCheckbox(Panel p, GridBagConstraints c, Checkbox p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setScrollbar(Panel p, GridBagConstraints c, Scrollbar p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setPanel(Panel p, GridBagConstraints c, Panel p_objeto, int p_ipadx, int p_ipady, © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 17. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 17 int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } void setScrollPane(Panel p, GridBagConstraints c, ScrollPane p_objeto, int p_ipadx, int p_ipady, int p_colwidth, int p_anchor) { c.gridx = GridBagConstraints.RELATIVE; c.gridy = GridBagConstraints.RELATIVE; c.ipadx = p_ipadx; c.ipady = p_ipady; c.anchor = p_anchor; c.gridwidth = p_colwidth; p.add(p_objeto, c); } } © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 18. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 18 7 Componentes Swing 7.1 Versión SWING de los componentes AWT La versión Swing de los componentes AWT tienen los mismos nombres, pero con el prefijo 'J'. Así existe el JtextArea, Jlabel, Jframe, etc... Una de las difenrecias entre Swing y AWT es que en los componenetes Swing se puede usar el HTML para formatear el contenido. 7.2 Nuevos componentes Swing Además de los compenentes que ya existen en AWT, la biblioteca Swint agrega muchos otros componentes como: Jslider JSpinner JColorChooser JEditorPane and JtextPane JFileChooser JTable JTree JProgressBar JSeparator © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 19. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 19 JtoolTip JSplitPane JTabbedPane JtoolBar Para utilizar cada tipo de componente Swing, ver en la documentación Java en el CD del material del curso, así que en la documentación disponible en línea. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 20. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 20 8 Ejercicios 1) Crear una ventana y probar los diferente tipos de componentes. 2) Crear un TextField, un botón, y un TextArea. Cuando se empuja el botón, el texto contenido en el TextField debe ser adjuntado al contenido del TextArea, y el valor del TextField vaciado. 3) Crear un programa para maneja una lista de compras. Empujando el botón, el articulo mencionado está adjuntado a la lista de compras del super y/o de la venta según la casilla marcada. Ejercicio final: Crear una aplicación sencilla pero funcional, que se conecta a la base de datos del curso, y permite crear, modificar, y borrar empleados usando los componentes de AWT y/o Swing. © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida
  • 21. Curso de diseño de entorno gráfico con el paquete AWT del Java 2 Pagina 21 9 Esquema de la BD 'curso' © Copyright Cédric Simon, 2005 Versión 1.0 Reproducción prohibida