Publicado el 15 de Mayo del 2017
8.975 visualizaciones desde el 15 de Mayo del 2017
2,0 MB
25 paginas
Creado hace 13a (25/10/2011)
AULA
MENTOR
educacion.es
Nipo: 820-11-347-3
Autor:
Pilar Aranzazu Ocaña Diaz-Ufano y José
Miguel Ordax Cassá
Edición y maquetación de contenidos:
Susana Pérez Marín
Diseño gráfico e ilustración de portada:
María Guija Medina
MÓDULO A
UNIDADES DIDÁCTICAS:
1. Paquete AWT
2. Paquete Swing
3. Applets
MÓDULO A
Paquete AWT
Tema 1.1
Índice de la unidad:
1. Introducción
2. Componentes visuales AWT
3. Layout Managers
4. Gestión de eventos
5. Otras clases
6. Editor visual AWT/Swing en Eclipse
Unidad 1.1 Paquete AWT
En las siguientes Unidades, vamos a estudiar la programación visual en Java. Co-
menzaremos en esta Unidad repasando los fundamentos básicos sobre los que se
apoya el funcionamiento de los interfaces gráfico en Java, partiendo del primer
framework que se implementó e incluyó en la JDK: AWT. En la siguiente Unidad ve-
remos otro framework posterior más flexible y potente llamado Swing (que en la
JDK 1.2 se incluyó como parte del lenguaje), pero que se apoya y basa en todo lo
estudiado en la AWT.
1. Introducción
AWT, son las siglas de: Abstract Window Toolkit
Es una librería de clases Java para el desarrollo de interfaces de usuario gráficas
(GUI).
Por tratarse de código Java, las aplicaciones serán independientes de la plataforma.
No así su apariencia visual, es decir, su Look & Feel, que será el de la plataforma
donde se ejecute.
Es la librería visual básica. Sobre ella se construyó a posteriori otra más flexible y
potente: JFC/Swing que trataremos con profundidad en la siguiente Unidad. Pero
los fundamentos básicos los estableció la AWT.
La AWT se encuentra en el paquete: java.awt.*
Dispone de la mayoría de controles visuales estándar:
Button (push, radio y check).
Canvas.
Frame, Dialog.
Label.
List, Choice.
ScrollBar, ScrollPane.
TextField, TextArea.
5
MODULO 1 Interfaces Visuales
Menu.
Los elementos básicos que componen la librería AWT son:
Los componentes (java.awt.Component) como Buttons, Labels, Text-
Fields, etc....
Los contenedores (java.awt.Container) como los Frames, los Panels,
etc.... que pueden contener componentes.
Los gestores de posición (java.awt.LayoutManager) que gestionan la dis-
posición de los componentes dentro de los contenedores.
Los eventos (java.awt.AWTEvent) que avisan de las acciones del usuario.
Como ya hemos comentado en varias ocasiones, en la Programación Orientada Ob-
jetos, y por tanto en el lenguaje Java, siempre existe un diseño jerárquico de he-
rencia. La AWT no es una excepción:
6
Unidad 1.1 Paquete AWT
java.awt.Component es una clase abstracta que implementa toda la funcionali-
dad básica de las clases visuales.
Tiene métodos para:
Mostrar y esconder.
Rendering.
Habilitar y deshabilitar, etc...
Y atributos como:
Color del foreground y background.
Tamaño y posición.
Por su lado, java.awt.Container es una clase que implementa la funcionalidad de
contener a otros componentes. Y si nos fijamos en la jerarquía de clase, los conte-
nedores son a su vez componentes.
Algunos contenedores típicos son:
Window.
Dialog y FileDialog.
Frame.
Panel: contenedor invisible.
7
MODULO 1 Interfaces Visuales
Luego entonces, los contenedores sirven para agrupar componentes visuales. Pero,
¿cómo se distribuyen dichos componentes en su interior?
Para dicho
cometido,
se utilizan
implementaciones del
interface
ja-
va.awt.LayoutManager
Cada contenedor tiene asociado un LayoutManager que distribuye los componentes
en el interior del contenedor. Por ejemplo, un Panel tiene asociado por defecto una
instancia de java.awt.FlowLayout
La posición de los componentes visuales es relativa al contenedor en el que se en-
cuentra. La coordenada 0,0 es la esquina superior izquierda del contenedor.
La clase java.awt.Component implementa varios métodos para la gestión del tama-
ño y posicionamiento como por ejemplo:
Rectangle getBounds();
void setLocation(int x, int y);
Point getLocation();
void setBounds(int x, int y, int width, int height);
Dimension getSize();
void setSize(Dimension d);
Container getParent();
Por su lado, la clase java.awt.Container posee varios métodos para acceder a los
componentes que contiene, como por ejemplo:
add(Component c); o add(Component c, Object o); // Inserta el componente
c en el contenedor referenciado.
remove(Component c); // Elimina el componente c del contenedor referen-
ciado.
Component[] getComponents(); // Devuelve un array con los componentes
del contenedor referenciado.
8
Unidad 1.1 Paquete AWT
A continuación, listamos los pasos habituales con un ejemplo, para crear un com-
ponente visual y añadirlo a un contenedor:
Crear el componente: Button b = new Button();
Añadir el componente al contenedor: unContenedor.add(b);
Invocar métodos sobre el componente y manejar sus eventos:
b.setText(“Ok”);
Ejemplo: Desarrollo de un ejemplo básico de contenedores con componentes:
import java.awt.*;
public class EjemploAWT
{
public static void main(String[] args)
{
Frame frame = new Frame();
frame.setLayout(null);
frame.setBounds(0,0,400,300);
frame.setTitle("Ejemplo AWT");
Panel panel = new Panel();
panel.setLayout(null);
panel.setBounds(50,40,250,220);
panel.setBackground(Color.LIGHT_GRAY);
Button boton = new Button("Aceptar");
boton.setBounds(100,80,100,20);
panel.add(boton);
frame.add(panel);
frame.setVisible(true);
}
}
9
MODULO 1 Interfaces Visuales
Para poder interactuar con los interfaces visuales, es decir, poder reaccionar y eje-
cutar código cuando se pulse un botón, se mueva el ratón, se teclee algo, etc... hay
que gestionar los eventos. Trataremos este tema en un apartado posterior de esta
misma Unidad.
2. Componentes visuales AWT
Ya conocemos lo básico del funcionamiento de la programación visual. Ahora hare-
mos un repaso mediante ejemplos de código de un gran porcentaje de los compo-
nentes visuales existentes en la AWT, mostrando visualmente a que corresponden.
Para profundizar en cada uno de ellos, recomendamos examinar el API.
2.1 java.awt.Frame
import java.awt.Frame;
public class FrameTest
{
10
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("FrameTest");
f.setSize(200,150);
f.setVisible(true);
}
}
2.2 java.awt.Button
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
public class ButtonTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("ButtonTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
Button b = new Button("Ok");
f.add(b);
f.setVisible(true);
}
}
2.3 java.awt.Checkbox
import java.awt.Checkbox;
import java.awt.FlowLayout;
import java.awt.Frame;
public class CheckboxTest
Unidad 1.1 Paquete AWT
11
MODULO 1 Interfaces Visuales
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("CheckboxTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
Checkbox c = new Checkbox("Mayor de 18 años");
f.add(c);
f.setVisible(true);
}
}
2.4 java.awt.CheckboxGroup
import java.awt.*;
public class CheckboxGroupTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("CheckboxGroupTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
CheckboxGroup cbg = new CheckboxGroup();
Checkbox c1 = new Checkbox("Hombre",cbg,true);
Checkbox c2 = new Checkbox("Mujer",cbg,false);
f.add(c1);
f.add(c2);
f.setVisible(true);
}
}
12
2.5 java.awt.Choice
import java.awt.*;
public class ChoiceTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("ChoiceTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
Choice cbg = new Choice();
cbg.add("Rojo");
cbg.add("Amarillo");
cbg.add("Blanco");
f.add(cbg);
f.setVisible(true);
}
}
2.6 java.awt.Label
import java.awt.*;
public class LabelTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("LabelTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
Label l1 = new Label("Una etiqueta");
Label l2 = new Label();
l2.setText("Otra etiqueta");
f.add(l1);
f.add(l2);
Unidad 1.1 Paquete AWT
13
MODULO 1 Interfaces Visuales
f.setVisible(true);
}
}
2.7 java.awt.List
import java.awt.*;
public class ListTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("ListTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
List l = new List(3);
l.add("Primero");
l.add("Segundo");
l.add("Tercero");
l.add("Cuarto");
f.add(l);
f.setVisible(true);
}
}
2.8 java.awt.Scrollbar
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Scrollbar;
public class ScrollbarTest
{
public static void main(String[] args)
{
Frame f = new Frame();
14
Unidad 1
Comentarios de: Programación en Java avanzado (0)
No hay comentarios