Manual Java II PDF
Manual Java II PDF
Manual Java II PDF
MENTOR
educacion.es
Nipo: 820-11-347-3
Autor:
Pilar Aranzazu Ocaña Diaz-Ufano y José
Miguel Ordax Cassá
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
3. Layout Managers
4. Gestión de eventos
5. Otras clases
1. Introducción
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.
Canvas.
Frame, Dialog.
Label.
List, Choice.
ScrollBar, ScrollPane.
TextField, TextArea.
5
MODULO 1 Interfaces Visuales
Menu.
6
Unidad 1.1 Paquete AWT
Mostrar y esconder.
Rendering.
Y atributos como:
Tamaño y posición.
Window.
Dialog y FileDialog.
Frame.
7
MODULO 1 Interfaces Visuales
Luego entonces, los contenedores sirven para agrupar componentes visuales. Pero,
¿cómo se distribuyen dichos componentes en su interior?
Rectangle getBounds();
Point getLocation();
Dimension getSize();
Container getParent();
Por su lado, la clase java.awt.Container posee varios métodos para acceder a los
componentes que contiene, como por ejemplo:
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:
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.1 java.awt.Frame
import java.awt.Frame;
10
Unidad 1.1 Paquete AWT
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
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
Unidad 1.1 Paquete AWT
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);
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.1 Paquete AWT
f.setTitle("ScrollbarTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
Scrollbar sb = new Scrollbar(Scrollbar.HORIZONTAL,0,5,-100,100);
f.add(sb);
f.setVisible(true);
}
}
2.9 java.awt.TextField
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
public class TextFieldTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("TextFieldTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
TextField tf = new TextField("Escribe aquí...");
f.add(tf);
f.setVisible(true);
}
}
2.10 java.awt.TextArea
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextArea;
public class TextAreaTest
15
MODULO 1 Interfaces Visuales
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("TextAreaTest");
f.setSize(200,150);
f.setLayout(new FlowLayout());
TextArea ta = new TextArea("Escribe aquí...",5,15);
f.add(ta);
f.setVisible(true);
}
}
2.11 java.awt.Menu
import java.awt.*;
public class MenuTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("MenuTest");
MenuBar mb = new MenuBar();
Menu m1 = new Menu("Menu 1");
m1.add(new MenuItem("Opción 1"));
m1.add(new MenuItem("Opción 2"));
Menu m2 = new Menu("Menu 2");
m2.add(new CheckboxMenuItem("Opción 1", true));
m2.add(new CheckboxMenuItem("Opción 2"));
mb.add(m1);
mb.add(m2);
f.setMenuBar(mb);
f.setSize(200,150);
f.setVisible(true);
}
}
16
Unidad 1.1 Paquete AWT
2.12 java.awt.Dialog
import java.awt.Dialog;
import java.awt.Frame;
public class DialogTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("FrameTest");
f.setSize(200,150);
f.setVisible(true);
Dialog d = new Dialog(f);
d.setTitle("DialogTest");
d.setBounds(50,50,70,50);
d.setVisible(true);
}
}
2.13 java.awt.FileDialog
import java.awt.FileDialog;
import java.awt.Frame;
public class DialogTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("FrameTest");
f.setSize(200,150);
f.setVisible(true);
FileDialog d = new FileDialog(f);
d.setTitle("FileDialogTest");
d.setBounds(50,50,70,50);
17
MODULO 1 Interfaces Visuales
d.setVisible(true);
System.out.println(d.getFile());
// Recibir el nombre del fichero seleccionado.
}
}
3. Layout Managers
Cada Layout se caracteriza por el estilo que emplea para situar los componentes en
su interior:
Alineación en rejilla.
18
Unidad 1.1 Paquete AWT
Por último, pero no menos importante, consiguen que la aplicación sea indepen-
diente de la resolución de las máquinas donde se ejecuta.
3.1 java.awt.FlowLayout
import java.awt.*;
public class FlowLayoutTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("FlowLayoutTest");
f.setSize(300,150);
f.setLayout(new FlowLayout());
Button b1 = new Button("Button 1");
f.add(b1);
Button b2 = new Button("Button 2");
f.add(b2);
Button b3 = new Button("Button 3");
f.add(b3);
f.setVisible(true);
}
}
3.2 java.awt.BorderLayout
19
MODULO 1 Interfaces Visuales
import java.awt.*;
public class BorderLayoutTest
{
public static void main(String[]
args)
{
Frame f = new Frame();
f.setTitle("BorderLayoutTest");
f.setLayout(new BorderLayout());
Button b1 = new Button("Button 1 (NORTH)");
f.add(b1,BorderLayout.NORTH);
Button b2 = new Button("Button 2 (WEST)");
f.add(b2,BorderLayout.WEST);
Button b3 = new Button("Button 3 (CENTER)");
f.add(b3,BorderLayout.CENTER);
Button b4 = new Button("Button 4 (EAST)");
f.add(b4,BorderLayout.EAST);
Button b5 = new Button("Button 5 (SOUTH)");
f.add(b5,BorderLayout.SOUTH);
f.pack(); // El método pack, hace que el contenedor pregunte a su
// LayoutManager el tamaño mínimo para que todos sus
// componentes se puedan ver. Y se ajusta a ese tamaño
f.setVisible(true);
}
}
3.3 java.awt.CardLayout
import java.awt.*;
public class CardLayoutTest
20
Unidad 1.1 Paquete AWT
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("CardLayoutTest");
f.setSize(300,150);
CardLayout cl = new CardLayout();
f.setLayout(cl);
Button b1 = new Button("Button 1");
f.add(b1,"uno");
Button b2 = new Button("Button 2");
f.add(b2,"dos");
Button b3 = new Button("Button 3");
f.add(b3,"tres");
f.setVisible(true);
cl.show(f,"dos"); // Otras posibilidades: cl.first(f), cl.last(f) y cl.next(f);
}
}
3.4 java.awt.GridLayout
Usa una matriz en la que sitúa cada uno de los componentes. El tamaño de
todas las celdas es igual.
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
public class GridLayoutTest
{
public static void main(String[] args)
{
Frame f = new Frame();
f.setTitle("GridLayoutTest");
f.setSize(300,150);
f.setLayout(new GridLayout(2,3,2,2));
f.add(new Button("Button 1"));
21
MODULO 1 Interfaces Visuales
3.5 java.awt.GridBagLayout
import java.awt.*;
public class GridBagLayoutTest
{
public static void main(String[] args)
{
Frame frame = new Frame("GridBagLayoutTest");
frame.setLayout(new GridBagLayout());
22
Unidad 1.1 Paquete AWT
frame.add(button, c);
button = new Button("Button 4");
c.ipady = 40;
c.weightx = 0.0;
c.gridwidth = 3;
c.gridx = 0;
c.gridy = 1;
frame.add(button, c);
button = new Button("Button 5");
c.ipady = 0;
c.weighty = 1.0;
c.anchor = GridBagConstraints.PAGE_END;
c.insets = new Insets(10,0,0,0);
c.gridx = 1;
c.gridwidth = 2;
c.gridy = 2;
frame.add(button, c);
frame.pack();
frame.setVisible(true);
}
}
Es otra opción también válida, que consiste en prescindir del uso de los Layout
Managers. En tal caso, el desarrollador es responsable de ajustar todas las
posiciones y tamaños de los distintos componentes visuales utilizados en la
aplicación.
import java.awt.Button;
import java.awt.Frame;
public class NullLayoutTest
{
public static void main(String[] args)
{
23
MODULO 1 Interfaces Visuales
4. Gestión de eventos
24
Unidad 1.1 Paquete AWT
25