Skip to content

2 Introducción a AWT

AWT

Abstract Window Toolkit (AWT) es una librería de Java para el desarrollo de interfaces gráficas. Fue introducida en la versión 1.0 de Java y se desarrolló en tan solos dos meses, siendo la parte más débil de Java como lenguaje.

El entorno que ofrece es demasiado simple y no se tiene en cuenta las ideas de entornos gráficos novedosos.

Javasoft (desarrollador de Java antes de la adquisición por parte de Oracle), tras ver esta precariedad decidió desarrollar la Java Foundation Classes (JFC) que es una colección de clases que proporcionan una sensación visual más agradable y sean más fáciles de utilizar por el programador. Dentro de este conjunto de clases encontramos:

  • AWT que engloba todos los componentes del AWT que existían en la versión 1.1.2.
  • Java2D.
  • Accesibilidad
  • Swing que es la parte más importante y la que más desarrollada se encuentra.

Las clases pertenecientes a las clases JFC son independientes de la plataformas, al igual que Java. Por lo que, si se crea una interfaz gráfica en Windows, posiblemente al ejecutarse en otra plataforma como Linux el diseño puede verse ligeramente modificado.

Estructura básica de AWT

La estructura básica de AWT se basa en componentes y contenedores.

Los componentes son los controles básicos de la interfaz, como por ejemplo, los botones, listas, cuadros de textos, etc.

Los contenedores son componentes que contienen a otros componentes, los cuales son posicionados de forma relativa con respecto al contenedor. No se usan posiciones fijas de los componentes respecto a los contenedores, sino que están situadas a través de una disposición controlada (layouts).

Todos los contenedores y componente se encuentran dentro de un marco (frame). Un frame es un contenedor que representa una ventana que no está contenida en otra ventana.

Estructura AWT

Figura 1 - Estructura AWT

Frames

Como hemos visto anteriormente, un Frame es una ventana top-level y se considera el primer contenedor de nuestra aplicación UI. La clase Frame del paquete java.AWT representa una ventana y hereda de la clase abstracta Container, por lo que un Frame no deja de ser un contenedor. En dicha clase, podemos encontrar varios constructores que nos permite crear una ventana, entre ellos destacan:

  • Frame(): Crea una ventana con la configuración por defecto.
  • Frame(String title): Crea una ventana con el título indicado.

El Frame muestra el título de la ventana que se le puede asignar también con el método setTitle(String title).

Frame

Figura 2 - Frame

También podemos definir el tamaño de la ventana haciendo uso del método setSize(int width, int height) indicando la anchura y la altura de la ventana.

Una ventana, en ciertos puntos, no queremos que sea una readjustable, es decir, que el usuario no lo pueda redimensionar, para ello se usa el método setResizable(boolean b) que permitirá o no redimensionar el frame dependiendo del valor pasado como parámetro.

Para visualizar la ventana, se utiliza el método setVisible(boolean b) con el parámetro booleano a true. Para ocultarla se debe usar el parámetro b.

Para añadir un componente a nuestro frame se usa el método add(Component component) de la clase Frame.

Proyecto MyFirstFrame

En este proyecto se va a desarrollar un programa que habrá una ventana vacía.

public class Main {
    public void show() {
        Frame myFirstFrame = new Frame("My first frame");
        myFirstFrame.setSize(200, 300);
        myFirstFrame.setResizable(false);
        myFirstFrame.setVisible(true);
    }

    public static void main(String[] args) {
        new Main().show();
    }
}