Un repaso a AWT
AWT son las siglas de Abstract Window ToolKit, las herramientas originales de Java para crear interfaces gráficas.
Es una librería GUI portable para aplicaciones autónomas y/o applets, proporciona la conexión entre nuestra aplicación y el GUI nativo.
Las prestaciones de AWT incluyen:
- Un amplio grupo de componentes de usuario
- Un modelo de manejo de eventos robusto
- Herramientas gráficas y de imágenes (clases de Formas, colores y fuentes)
- Manejadores de diseño que no dependen del tamaño de pantalla o resolución
- Clases de transferencia de datos, para copiar-pegar a través del portapapeles de la plataforma
Los componentes de AWT dependen de componentes de código nativo, por lo que a los componentes se les suele llamar “heavyweight components” (componentes pesados).
AWT está pensado para aplicaciones que corran en navegadores antiguos y definido con los mínimos de cualquier aplicación, es por esto que no incluye componentes complejos como pueden ser tablas, vistas de árbol, barras de progreso y otros.
Un vistazo a Swing
Swing implementa un juego de componentes construidos sobre AWT y además proporciona un “look and feel” conectable/intercambiable. Está escrito 100% en código Java y basado en el framework Lightweight UI de la JDK 1.1.
Sus características incluyen:
- Todas las prestaciones de AWT
- Componentes 100% Java de las versiones de los componentes de AWT
- Un rico conjunto de componentes de alto nivel (listas en árbol, paneles de pestañas, etc...)
- Un diseño Java puro, no depende de terceros.
- Look and feel intercambiable
Al no depender de componentes de la plataforma, a los componentes de Swing se les llama “lightweight components”.
Swing es parte de las JFC (Java Foundation Classes), se creó para solucionar muchas de las limitaciones de AWT. Swing se creó como un bien diseñado, flexible y poderoso juego de herramientas GUI.
Si nos paramos a comparar sus componentes, vemos que son bastante similares. Os dejo una tabla con la correspondencia de algunos componentes AWT con su análogo Swing.
AWT | Swing |
---|---|
Applet | JApplet |
Frame | JFrame |
Window | JWindow |
Dialog | JDialog |
Component | JComponent |
Panel | JPanel |
Button | JButton |
Canvas | Panel |
Checkbox | JCheckBox o JRadioButton |
Choice | JComboBox |
Label | JLabel |
List | JList |
TextArea | JTextArea |
TextField | JTextField |
Menu | JMenu |
MenuItem | JMenuItem |
Como conclusión, podríamos decir que si queremos que nuestra aplicación corra en cualquier entorno, independientemente de la antigüedad del mismo, deberíamos usar AWT; ahora bien, si lo que queremos es una herramienta potente, flexible, usar tablas y otros componentes complejos; y completamente adaptable a nuestras necesidades, desde luego nuestra decisión está clara, usaremos la tecnología Swing.
Como punto final vamos a ver como crear un programa sencillo, un panel al que añadimos 2 botones, usando ambas tecnologías para poder ver las diferencias.
Ejemplo con AWT
package AWTvsSwing; import java.applet.Applet; import java.awt.Button; import java.awt.FlowLayout; public class MainAWT extends Applet { @Override public void init() { Button button1 = new Button(); button1.setLabel("My Button 1"); Button button2 = new Button("My Button 2"); setLayout(new FlowLayout()); add(button1); add(button2); } }
Ejemplo con Swing
package AWTvsSwing; import java.awt.FlowLayout; import javax.swing.JApplet; import javax.swing.JButton; public class MainSwing extends JApplet { @Override public void init() { JButton button1 = new JButton(); button1.setText("My Button 1"); JButton button2 = new JButton("My Button 2"); setLayout(new FlowLayout()); add(button1); add(button2); } }
0 comentarios:
Publicar un comentario