Beruflich Dokumente
Kultur Dokumente
1. Controles basicos
oButton
oChekboxes
oChoice
oList
oMenu
oText Field
2. Otros controles
oSlider
oScrollbar
oText Area
oCanvas
oLabel
oPanel
oScroll Pane
// EjemploLabelApplet.java
import java.awt.*;
{
Label etiqueta1 = new Label("Label1");
Label etiqueta2 = new Label("Label2");
Label etiqueta3 = new Label("Label3");
add(etiqueta1);
add(etiqueta2);
add(etiqueta3);
}
}
5. Como usar Buttons
//EjemploButtonApplet.java
import java.awt.*;
{
Label etiqueta1 = new Label("Label1");
Button boton1 = new Button("Boton 1");
Button boton2 = new Button("Boton 2");
add(boton1);
add(etiqueta1);
add(boton2);
}
}
// EjemploAWTApplet.java
...
add(new Checkbox("Pamplona"));
add(new Checkbox("Bilbao", null, true));
add(new Checkbox("Madrid"));
add(new Checkbox("Barcelona"));
...
Metodos utiles:
RadioButton
...
CheckboxGroup cbg = new CheckboxGroup();
add(new Checkbox("Rojo", cbg, false));
add(new Checkbox("Azul", cbg, false));
add(new Checkbox("Verde", cbg, true));
add(new Checkbox("Negro", cbg, false));
...
...
Choice c = new Choice(); // crea el menu desplegable
c.addItem("Naranja");
c.addItem("Manzana");
c.addItem("Pera");
add(c); // añade el menu al panel
...
Metodos utiles:
//Este tipo de menus solo permiten seleccionar una opcion. Para multiples
opciones, usar una lista
8. Como usar TextFields
...
add(new Label("Nombre completo"));
add(new TextField("-esciba aqui su nombre-"));
add(new Label("Telefono"));
add(new TextField(12));
add(new Label("Password"));
TextField t = new TextField(20);
t.setEchoCharacter('*');
add(t);
...
Metodos utiles:
oLa clase Window de AWT permite crear ventanas independientes del navegador que
contiene al applet. Frame es mas potente que Dialog
oEl LayoutManager por defecto para Frame es BorderLayout
oLos Dialog son ventanas emergentes pensadas para mensajes no permanentes, como
‘ADVERTENCIA’, peticion de informacion especifica, etc..., que una vez
presentados al usuario pueden desaparecer (p.ej.: ‘Se va a proceder a la
instalacion de HyperQuake V. Confirmar?’)
oSe puede forzar a que sean no redimensionables o ‘modales’
oUn Dialog ‘modal’ es aquel que impide usar otra ventana hasta que no se lleve a cabo
la accion de la presente ventana (p.ej.: ‘Es necesario que introduzca la clave de
acceso para continuar la ejecucion’)
oA su vez existen dos clases de Dialog:
o Dialog (a secas!)
o FileDialog:
...
...
11. Como usar List
...
List lista = new List(5, true); // crea una lista que tendra 5 lineas, y que
permitira
// seleccion multiple (valor 'true')
lista.addItem("Afrodita");
lista.addItem("Apolo");
lista.addItem("Ares");
lista.addItem("Hades");
lista.addItem("Zeus"); // si se añade un sexto elemento, se creara
automaticamente
// una barra deslizante
add(lista);
...
Metodos utiles:
oLos componentes TextArea y TextField vienen con sus propias barras deslizantes. Pero
tambien se pueden crear barras deslizantes independientes, tipicamante para
manipular rangos de valores entre un maximo y un minimo.
oPara variar el valor asociado, hay tres formas:
...
Panel unPanel = new Panel();
unPanel.add(new Label("Arriba"));
unPanel.add(new Label("Abajo"));
add(unPanel);
...
// Ahora viene la clase definida por nosotros (se pueden incluir varias
clases en un mismo fichero siempre que solo haya una de ellas con el
atributo ‘public’
class ScrollableCanvas extends Canvas
{
Dimension preferredSize;
Dimension minimumSize;
Image imagen;
// Constructor de la clase ScrollableCanvas (definida por nosotros ¡!)
public ScrollableCanvas(Image imagen)
{
this.imagen = imagen;
preferredSize = new Dimension(600, 320);
minimumSize = new Dimension(10, 10);
}
{
return minimumSize;
}
{
return preferredSize;
}
{
g.drawImage(imagen, 0, 0, getBackground(), this);
}
}
oMenuShortcut: asocia una combinacion de teclas para activar una opcion de menu
(p.ej.:Control-S para grabar archivo)
oPopupMenu: menu flotante
18. LayoutManager
o FlowLayout
o GridLayout
o GridBagLayout
o BorderLayout
o CardLayout
o Layout hecho ‘a medida’ por el usuario
o Sin Layout: posicionamiento absoluto de los componentes
oNo es recomendable usarlo, porque las coordenadas de pantalla dependen de
la plataforma, y esto va en contra de la filosofia Java de hacer programas
portables
oEn un sistema puede quedar perfecto y en otro salir como un churro...
o FlowLayout
oEs la clase mas sencilla. Simplemente se van añadiendo los componentes uno detras
de otro, en linea. Si no caben en una linea, se pasa a la siguiente.
oEs el LM por defecto.
setLayout(new FlowLayout());
o GridLayout
...
Panel panelGridLayout = new Panel();
panelGridLayout.setLayout(new GridLayout(3,3)); // Layout de 3 filas y 3 columnas
pa.nelGridLayout.add(etiqueta1);
panelGridLayout.add(boton1);
panelGridLayout.add(boton2);
panelGridLayout.add(boton3);
add(panelGridLayout);
...
Otro constructor:
public GridLayout(int rows, int columns, int horizontalGap, int verticalGap) // define
tambien la separacion entre celdas, en pixels
o GridBagLayout
o BorderLayout
oSe indica la posicion ‘geografica’ del componente: norte, sur, este, oeste o centro.
...
Panel panelBorderLayout = new Panel();
panelBorderLayout.setLayout(new BorderLayout(5,5));
panelBorderLayout.add("Center", etiqueta1);
panelBorderLayout.add("North", boton1);
panelBorderLayout.add("East", boton2);
panelBorderLayout.add("West", boton3);
panelBorderLayout.add("South", boton4);
add(panelBorderLayout);
...
o CardLayout
oEsta clase se usa para hacer ‘slide show’, es decir una sucesion de ‘tarjetas’ en
pantalla.
oLos paneles se presentan ‘uno cada vez’.
...
Panel panelCardLayout = new Panel();
panelCardLayout.setLayout(new CardLayout());
panelCardLayout.add("primero", new Button("Boton 14"));
panelCardLayout.add("segundo", new Button("Boton 15"));
panelCardLayout.add("tercero", new Button("Boton 16"));
panelCardLayout.add("cuarto", new Button("Boton 17"));
((CardLayout)panelCardLayout.getLayout()).show(panelCardLayout, "tercero"); //
complicadillo...
add(panelCardLayout);
...
Metodos utiles:
public void first(Container parent)
public void next(Container parent)
public void previous(Container parent)
public void last(Container parent)
o Sin LayoutManager
setLayout(null)
o Insets
oDefinen un espacio de ‘marco’ del panel.
oSe pueden asignar anchuras independientes a los 4 lados
...
public Insets insets()
{
return new Insets(10,10,10,10); // 10 pixels en los 4 lados
}
...
""