martes, 27 de mayo de 2008

AWT (Abstract Window Toolkit)


Las Java Foundation Classes (JFC en español) son un framework gráfico que sirven para construir interfaces gráficas de usuario basadas en Java. Está compuesta de AWT (Abstract Window Toolkit), Swing y Java 2D, y recrean una interfaz de usuario para programas Java. En definitiva, son las API estándar para suministrar una interfaz gráfica de usuario (GUI) para un programa Java.

AWT (Kit de herramientas de Ventana Abstracta -en español-), es un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java. Llegados a J2SE 1.2, los widgets de AWT fueron superados a los del kit Swing, que es una biblioteca gráfica para Java que forma parte de las JFC y que incluye widgets para interfaz gráfica de usuario tales como cajas de texto, botones, desplegables y tablas.

________________________

En resumen, AWT se encuentra en el paquete java.awt y se apoya en la plataforma para la visualización, lo que provoca cambios según la plataforma que empleamos; Swing es una extensión de AWT.

Vamos a realizar nuestra primera ventanuca: ejemploFrame.java

La estructura del AWT se resume en que los Contenedores (Containers) contienen Componentes (Components), que son los controles básicos, los que a su vez contienen Objects; no se usan posiciones fijas de los Componentes, sino que están situados a través de Layouts; no existe un formato de recursos por lo que no se puede separar el código de la interface (no hay ningún diseñador de interfaces).

La interface gráfica se compone de elementos gráficos básicos de usuario:
  • Los contenedores (container): es la ventana o parte de la ventana donde se colocarán los componentes y donde se realizan los dibujos. Los contenedores contienen y organizan la situación de los Componentes. Los contenedores son en sí mismo contenedores, por lo que pueden ir dentro de ellos mismos. En el AWT, todos los contenedores son instancias de la clase Container o uno de sus tipos.
  • Los componentes (componet):botones, barras de desplazamiento, etiquetas, listas, cajas, campos de texto, etc., que permiten al usuario interactuar con la aplicación y proporcionar información desde el programa al usuario sobre el estado del programa. En AWT, todos los componentes de la interface de usuario son instancias de la clase Component. Los componentes se agrupan dentro de contenedores.


    Algunas de las características de los componentes:
    1. Todos los Components (menos Window y sus derivados) se tienen que añadir a un Container.
    2. Para añadir un Component a un Container se emplea el método add() de la clase Container: ventana.add(boton);
    3. Los Containers de máximo nivel son las Windows (Frames y Dialogs). Los Panels y ScrollPanes siempre deben estar de otro Container.
    4. Un Component sólo puede estar dentro de un Container. Si esta en uno y se añade a otro, deja de estar en el primero.
    5. La clase Component tiene variables y métodos básicos, que son heredados por todas sus sub-clases.
  • El modelo de eventos: el usuario controla la aplicación actuando sobre los componentes (con el ratón o el teclado). Cada vez que el usuario realiza una acción, se produce el evento correspondiente, y que el sistema operativo transmite al AWT, el cual crea un objeto de una determinada clase de evento, derivada de AWTEvent. Este evento es transmitido a un determinado método para que los gestione. En definitiva, el objeto o componente que recibe el evento debe registrar o indicar previamente qué objeto se va a hacer cargo de gestionar ese evento. Jerarquía de eventos:

Basándonos en las clases MiVentana, MiBoton y MiTexArea que están en el repositorio, he creado mi clase Ventana.java.

No hay comentarios: