SWT : El Standard Widget Toolkit
El Standard Widget Toolkit (SWT) es una nueva biblioteca de clases para crear interfaces gráficas de usuario (GUI) en Java. Creado como parte del proyecto Eclipse, SWT permite a los desarrolladores crear aplicaciones eficaces y portátiles que acceden directamente a las instalaciones de la interfaz de usuario de los sistemas operativos que se ejecuta en el. Esta tecnología revolucionaria hace posible la creación de aplicaciones basadas en Java que son indistinguibles de las aplicaciones nativas de una plataforma.
Recupera la idea original de la biblioteca AWT de utilizar componentes nativos, con lo que adopta un estilo más consistente en todas las plataformas, pero evita caer en las limitaciones de ésta.
La biblioteca swing, por otro lado, está codificada enteramente en Java y frecuentemente se le acusa de no brindar una experiencia idéntica a la de una aplicación nativa. Sin embargo, el precio a pagar por esa mejora es la dependencia (a nivel de aspecto visual y no de interfaz de programación) de la aplicación resultante del sistema operativo sobre el cual se ejecuta. La interfaz del workbench de eclipse también depende de una capa intermedia de interfaz gráfica de usuario (GUI) llamada JFace que simplifica la construcción de aplicaciones basadas en SWT.
JFace es un conjunto de widgets para realizar interfaces de usuario construido sobre SWT. Fue desarrollado por IBMpara facilitar la construcción del entorno de desarrollo de eclipse, pero su uso no está limitado a éste.
JFace proporciona una serie de construcciones muy frecuentes a la hora de desarrollar interfaces gráficas de usuario, tales como cuadros de diálogo, evitando al programador la tediosa tarea de lidiar manualmente con los widgets de SWT.
Ventajas y Desventajas
SWT tiene la desventaja de que requiere el código nativo para ser instalado en cada plataforma con el fin de que se ejecute.
Cada plataforma tiene su propia versión de swt.jar así como al menos un objeto nativo compartida.
En Windows esto es una dll., Si este código nativo no está disponible para un sistema operativo, entonces no puede ser utilizado SWT en esa plataforma La buena noticia es que los componentes SWT nativas han sido escritos para la mayoría de los sistemas operativos.
Su principal ventaja es que es rápido. En una simple comparación entre IDEs, es evidente que las operaciones gráficas en Eclipse son más rápidos que los IDE escrito en Swing.
Swing ha sido también criticado por su uso de memoria. SWT utiliza considerablemente menos memoria que swing
Arquitectura Comparación con AWT / Swing
El original de Java AWT fue implementado por tener los widgets escritos en Java donde solamente los widgets que estaban disponibles en todas las plataformas soportadas fueron proporcionados. Esto significaba que incluyó componentes AWT de bajo nivel, tales como listas, texto y botones, pero no incluyó los árboles entre otros componentes.
Se resolvió este problema al proporcionar versiones emuladas de todo los componentes de alto nivel (como los árboles, tablas y texto). El kit de herramientas Swing utiliza un pre-creado de imágenes y usa ciertas operaciones para construir sus componentes propios. Esto resuelve el problema de la funcionalidad, pero las aplicaciones desarrolladas en Swing se destacan por ser diferente. También significó que las aplicaciones hechas en Swing corren más lento que sus contrapartes nativas. Esto hace que sea difícil construir aplicaciones que compitan con otras desarrolladas para una determinada plataforma.
SWT trata de hacer lo mejor de Swing y AWT. Se define una API portable común que se proporciona en todas las plataformas. Siempre que sea posible, la API en cada plataforma es implementada con widgets nativos. Esto permite que el conjunto de herramientas pueda reflejar inmediatamente cualquier cambio en el GUI , mientras que el mantiene un modelo constante de programación para todas las plataformas.
SWT proporciona un widget de árbol emulado en Motif 1.2, que es API compatible con la aplicación nativa de Windows.
• Las funciones que no están disponibles en todas las plataformas, pero que no se usan mucho puede omitirse de SWT. Por ejemplo, Windows proporciona un widget que implementa un calendario, pero esto no se proporciona en SWT.
• Las características que son específicos de una plataforma, tales como la integración ActiveX, son sólo proporcionados en la plataforma correspondiente. Características específicas de la plataforma se separan en paquetes separados que denotan claramente el nombre de la plataforma en el paquete.
SWT - The Standard Widget Toolkit Comparación de funciones de SWT con Swing
En general, hay menos clases de widget swt que en Swing. Esto se debe a que en función se han incluido menos clases, resultando una API con menor jerarquía que Swing.
Ejemplo, en lugar de un JButton, JCheckBox y JRadioButton sólo hay una clase Button con un parámetro int en el constructor para determinar que el botón se verá así.
El siguiente fragmento de código es una programa sencillo que muestra el texto Hola Mundo:
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
public class Helloword {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Hello World");
shell.setBounds(100, 100, 200, 200);
shell.setLayout(new FillLayout());
Label label = new Label(shell, SWT.CENTER);
Label.setText("Hola Mundo");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) display.sleep();
}
display.dispose();
}
}
En conclusión esta librería swt.jar es una muy opción al momento de hacer aplicaciones debido a sus características y las ventajas que posee en comparación de swing aunque será decisión de cada programador escoger con quien trabajar al momento de crear sus aplicaciones, la podemos encontrar y descargar según nuestro sistema operativo en www.java2s.com/Code/Jar/s/Downloadswt37M7win32x8664jar.htm.
Este es un link de un Documento PDF que explica con mas detalles como crear aplicaciones con swt
http://www.ctr.unican.es/asignaturas/MC_OO/Doc/Master_0910_SWT.pdf
Referencias
El Plug-in: Guía de plataformas para desarrolladores:
http://dev.eclipse.org:8080/help/help.jsp
SWT: El Widget Toolkit Standard - Parte 1:
http://www.eclipse.org/articles/Article-SWT-Design-1/SWT-Design-1.html
SWT: El Widget Toolkit Standard - Parte 2:
http://www.eclipse.org/articles/swt-design-2/swt-design-2.html
SWT Presentaciones
http://www.eclipse.org/articles/Understanding% 20la% 20Layouts/Understanding
youts.htm
SWT Ejemplos:
http://dev.eclipse.org/viewcvs/index.cgi/checkout/platform-swt-
casa / dev.html # snippets
El eclipse Wiki Sitio:
http://eclipsewiki.swiki.net

