AWT y SWING

AWT

Abstract Window Toolkit (AWT)(Kit de Herramientas de Ventana Abstracta en español) es una paquete que contiene clases e interfaces, y funciona como un kit de herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la plataforma original de Java.

SWING

SWING es otro paquete con clases e interfaces que viene a resolver algunos inconvenientes que presenta AWT mejorando y agregando clases e interfaces, Swing está desarrollado sobre las partes de AWT

Según Wikipedia

  • La arquitectura Swing Es un framework MVC para desarrollar interfaces gráficas para Java con independencia de la plataforma. Sigue un simple modelo de programación por hilos, y posee las siguientes características principales:
    • Independencia de plataforma.
    • Extensibilidad: es una arquitectura altamente particionada: los usuarios pueden proveer sus propias implementaciones modificadas para sobrescribir las implementaciones por defecto. Se puede extender clases existentes proveyendo alternativas de implementación para elementos esenciales..
    • Personalizable: dado el modelo de representación programático del framework de swing, el control permite representar diferentes estilos de apariencia "look and feel" (desde apariencia MacOS hasta apariencia Windows XP pasando por apariencia GTK+, IBM UNIX o HP UX entre otros). Además, los usuarios pueden proveer su propia implementación de apariencia, que permitirá cambios uniformes en la apariencia existente en las aplicaciones Swing sin efectuar ningún cambio al código de aplicación.
  • Ventajas
    • El diseño en Java puro posee menos limitaciones de plataforma.
    • El desarrollo de componentes Swing es más activo.
    • Los componentes de Swing soportan más características.

Primera Ventana con AWT

NOTA: Con la creación de esta ventana básica solo lograremos que esta se muestre, NO responderá a los eventos del usuario cuando desee cerrarla, es decir no se cierra la ventana al pulsar sobre la "X" de la esquina superior derecha, yo tengo abierto el administrador de tareas para finalizar el proseco. Para que la ventana responda a la petición de cierre será necesario agregar un "escucha de evento".
Para poder crear una ventana básica con awt podemos hacerlo de 2 maneras:

Heredando:

  • Crear nuestra clase y hacerla sub-clase de Frame con extends
    • public class Ventana extends Frame
  • Crear un constructor con al menos una instrucción la de visibilidad:
    • setVisible(true);
    • Opcionalmente le agregamos algunos métodos para configurar la ventana:
      • Editamos el titulo con el String
        • super("Primera Ventana");
      • Configuramos el tamaño de 300px por 100px
        • setSize(300,100);
  • Llamamos a nuestro constructor desde el main:
    • new Ventana();
  1. import java.awt.*;
  2. public class Ventana extends Frame{
  3.     public Ventana(){
  4.         super("Primera Ventana");
  5.         setSize(300,100);
  6.         setVisible(true);
  7.     }
  8.     public static void main(String[] arg){
  9.         new Ventana();
  10.     }
  11. }

Instanciando Frame

  • Desde el main crear un objeto Frame
    • Frame marco = new Frame( "Primera Ventana" );
  • El objeto llamará a sus métodos para configurar la visibilidad, también el tamaño:
    • marco.setSize(new Dimension(300,100));
    • marco.setVisible(true);
  1. import java.awt.Frame;
  2. import java.awt.Dimension;
  3. public class Ventana {
  4.    
  5.     public static void main(String[] args) {
  6.             Frame marco = new Frame( "Primera Ventana" );
  7.             marco.setSize(new Dimension(300,100));
  8.             marco.setVisible(true);
  9.     }
  10. }

En ambos casos el resultado será:

Primera Ventana con SWING

Como deciamos antes SWING viene a resolver los problemas que traia AWT, de momento podremos lograr que los botones del marco(minimizar, maximizar, cerrar) funcionen por si solo a través de un métodos específico. Los pasos a seguir y formas de hacerlo los mismos:

Heredando:

  • Crear nuestra clase y hacerla sub-clase de Jframe con extends
    • public class PrimeraVentana extends JFrame
  • Crear un constructor con al menos una instrucción la de visibilidad y forma de cierre:
    • setVisible(true);
    • setDefaulCloseOperacion(JFrame.EXIT_ON_CLOSE);
    • Opcionalmente le agregamos algunos métodos para configurar la ventana:
      • Editamos el titulo con el String
        • super("Mi Primera Ventana");
      • Configuramos el tamaño de 300px por 100px
        • setSize(300,100);
  • Llamamos a nuestro constructor desde el main:
    • new Ventana();
  1. import javax.swing.JFrame;
  2. public class PrimeraVentana extends JFrame{
  3.     public PrimeraVentana(){
  4.         super("Mi Primera Ventana");
  5.         setSize(300,100);
  6.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  7.         setVisible(true);
  8.     }
  9.     public static void main(String[] args) {
  10.         new PrimeraVentana();
  11.     }
  12. }

Instanciando JFrame

  • Desde el main crear un objeto JFrame
    • JFrame marco = new JFrame( " Mi Primera Ventana" );
  • El objeto llamará a sus métodos para configurar la visibilidad, forma de cierre y también el tamaño:
    • marco.setSize(new Dimension(300,100));
    • marco.setDefaulCloseOperation(JFrame.EXIT_ON_CLOSE);
    • marco.setVisible(true);
  1. import javax.swing.JFrame;
  2. public class Instanciando {
  3.     public static void main(String[] args) {
  4.         JFrame marco = new JFrame("Mi Primera Ventana");
  5.         marco.setSize(300, 100);
  6.         marco.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  7.         marco.setVisible(true);
  8.     }
  9. }
Como resultado seguiremos teniendo la misma ventanita.

No hay comentarios:

Publicar un comentario