0

SWT (Standar Widget Toolkit)

Posted by wkgarcia on septiembre 10, 2012 in Uncategorized |

El SWT es un conjunto de herramientas graficas usadas en la plataforma Java. Originalmente fue desarrollado en IBM por Stephen Northover, y ahora es manejada por Eclipse Foundation en conjunto con  Eclipse IDE.

También existe el AWT(Abstract Window Toolkit), y  el kit de herramientas de java: Swing,  siendo SWT otra alternativa más para el desarrollo de entornos gráficos.

Para mostrar los elementos del GUI(Graphical User Interface) SWT accede a  las librerías GUI nativas del Sistema Operativo usando JNI (Java Native Interface), de manera que dichos programas nos presentan un ambiente similar al del SO en el que se ejecuta, por el uso de las mismas APIs de este.

El paquete de herramientas esta licenciado por Eclipse Public License, es una licencia de código abierto aprobada por Open Source Initiative.

SWT es un contenedor de objetos de código nativo, por esto, a menudo los widgets SWT son llamados “de peso pesado”, evocando imágenes de un ligero contenedor Java en torno a un «pesado» objeto nativo. En caso de que las librerías de interfaz grafico de usuario,  de la plataforma nativa no sean compatibles con la funcionabilidad requerida por SWT, este implementa su propio código GUI en Java, de una manera similar al Swing.

SWT es kit de herramientas tan simple como el Swing, con menos funcionabilidades extrañas para el desarrollador promedio, esto ha llevado a algunos a sostener que SWT carece de funcionalidad en comparación a Swing.

James Gosling, creador del lenguaje Java, dice que SWT es demasiado simple, y que SWT es una herramienta difícil de portar a nuevas plataformas por la misma razón que AWT solía tener problemas de portabilidad: que es demasiado simple, nivel demasiado bajo y demasiado ligado a la API de Win32 GUI, lo que lleva a problemas de adaptación de la API de SWT a otras herramientas de interfaz gráfica de usuario, tales como Motif y OS Carbon.

Aunque SWT no implementa el popular Modelo-Vista-Controlador arquitectura utilizada en Swing y muchos otros juegos de herramientas GUI de alto nivel, la biblioteca JFace, que se desarrolla en el marco del mismo proyecto Eclipse, proporciona una plataforma independiente, de alto nivel del modelo -Vista-Controlador de abstracción por encima de SWT. Los desarrolladores pueden optar por utilizar JFace para proporcionar modelos de datos más flexibles y abstractos para controles complejos SWT, como árboles, tablas y listas, o acceder a los controles directamente cuando sea necesario.

Look and Feel

Los widgets SWT  tienen el mismo «look and feel» que los widgets nativos. Esto contrasta con las herramientas Swing donde todos los widgets son emulaciones de los widgets nativos. En algunos casos, la diferencia es distinguible. Por ejemplo, el Mac OS X cuenta con un árbol de widgets, que produce una sutil animación cuando un árbol se expande y los botones predeterminados tienen un brillo animado para llamar la atención del usuario sobre ellos. La versión Swing por defecto de estos no es animada.

Vista Windows Linux Mac OS X  Motif Photon

Programación

Aquí tenemos el programa básico “Hola Mundo” usando SWT:

  1. import org.eclipse.swt.*;
  2. import org.eclipse.swt.widgets.*;
  3. public class HelloWorld
  4. {
  5.    public static void main (String[] args)
  6.   {
  7.       Display display = new Display();
  8.       Shell shell = new Shell(display);
  9.       Label label = new Label(shell, SWT.NONE);
  10.       label.setText(«Hello World»);
  11.       label.pack();
  12.       shell.pack();
  13.       shell.open();
  14.       while (!shell.isDisposed())
  15.       {
  16.          if (!display.readAndDispatch()) display.sleep();
  17.       }
  18.       display.dispose();
  19.    }
  20. }

 

Sistemas Operativos Soportables:

  • Windows (x86_64)
  • Windows CE (ARM PocketPC)
  • Linux (x86_64/GTK 2)
  • Linux (PPC64/GTK 2)
  • Solaris 10 (SPARC/GTK 2)
  • Solaris 10 (x86/GTK 2)
  • HPUX (IA64_32/GTK 2)
  • AIX (PPC/GTK 2)
  • Mac OSX (Mac/Cocoa)
  • Mac OSX (Mac/Cocoa/x86_64)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


Copyright © 2011-2024 Kevin G. All rights reserved.
This site is using the Desk Mess Mirrored theme, v2.5, from BuyNowShop.com.