El Kit Gráfico: AWT


Algunos Widgets de la AWT


Los widgets se organizan en una jerarquía cuya raíz es la ventana de la aplicación.



Jerarquía de clases de AWT


Construcción de una ventana de interacción


La lista de ítemes:

   List lista = new List(3);
   for (int i = 1; i <= 10; i++) {
     lista.addItem("List item " + i);
   }
El panel de widgets:

   Panel panel= new Panel();


Organizador de contenedores: layout managers


BorderLayout organiza un contenedor en 5 zonas:


FlowLayout coloca los widgets de izquierda a derecha y de arriba hacia abajo:


Se colocan los widgets en los contenedores:


El panel se trata como si fuese un solo widget:

frame.add("South", panel);
Finalmente se despliega la ventana con:

frame.pack();
frame.show();


Los widgets de la AWT son beans


¡Ops! Faltó la superficie de dibujo


class MiCanvas extends Canvas {
    public void paint(Graphics g) {
        int w = getSize().width;
        int h = getSize().height;
        g.drawLine(10,10, 100,100);
    }

    public Dimension getMinimumSize() {
        return new Dimension(150,130);
    }

    public Dimension getPreferredSize() {
        return getMinimumSize();
    }
}



Juntando los pedazos para armar la ventana

public class Gui extends Frame { // Se especializa la ventana
  Button boton;  // Se crean variables de instancia
  List lista;    // para cada widget
  ...
  public Gui() { // El constructor para la ventana
    setLayout(new BorderLayout()); // asigna el layout
    boton= new Button("quit"); // crea los widgets
    ...
    add("West", area); // Arma la ventana
    ...
  }
  public static void main(String[] args) { // El main
    Frame frame= new Gui(); // Crea la ventana,
    frame.pack();           // la despliega
    frame.show();           // y termina
} }


Una vez armada la ventana, todo el proceso se hace atrapando los eventos que produce el usuario al interactuar con los widgets.

Ejercicio 1: Copie Gui.java a su directorio. Compile y ejecute.

Ejercicio 2: Construya una aplicación que cree una ventana con: