Tag: swt
SWT(Standard Widget Toolkit)
by harcroch on Sep.04, 2012, under Trabajos de la ESPOL
¿Qué es?
SWT (Standard Widget Toolkit) es un framework para la creacion de interfaces graficas escrito en C y usado en la platafaorma Java. Desarrollado en su comienzo por Stephen Northover para IBM y en la actualidad es mantenido por la fundacion eclipse.Para mostrar los elementos de la GUI crea a través de JNI (Java Native Interface) interfaces graficas nativas del sistema operativo, esto significa que dependiendo del sistema operativo en el que ejecutemos nuestra aplicación está tomara una apariencia haciendonos creer que fue inicialmente creado para ese sistema operativo.
¿Dónde lo puedo conseguir?
Para poder hacer uso de este framework debemos ir a la pagina de descargas de eclipse aqui luego buscamos el enlace a swt y descargamos el archivo dependiendo de nuestro sistema operativo, y por ultimo descomprimimos el archivo.
Si queremos construir una GUI con SWT debemos de añadir el archivo .jar con las clases a nuestro proyecto y luego usar los import que sean necesarios.Para construir una ventana simple hacemos uso de dos clases: la clase Display que equivale a Frame o JFrame y la clase Shell que equivale a Panel o JPanel y que es donde agregamos los diferentes componentes ya sean botones, labels, cajas de texto, etc.
Ahora veamos un ejemplo de una ventana hecha con SWT
//importamos las clases necesarias
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.*;
public class SWWT {
public static void main (String[]args){
Display display = new Display();
Shell shell = new Shell(display);
//Podemos cambiar el color de fondo
Color oc = new Color(display, 50, 125, 50);
shell.setBackground(oc);
//Podemos darle un titulo
shell.setText(«Ejemplo»);
//Por ultimo un layout
shell.setLayout(new GridLayout(2, true));
//Ahora agregamos los diferentes componentes que tendra nuestra ventana
TabFolder tabFolder = new TabFolder(shell, SWT.NONE);
tabFolder.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
TabItem item = new TabItem(tabFolder, SWT.NONE);
item.setText(«Widget»);
Composite composite = new Composite(tabFolder, SWT.NONE);
composite.setLayout(new GridLayout());
Tree tree = new Tree(composite, SWT.BORDER);
item.setControl(composite);
tree.setHeaderVisible(true);
tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
TreeColumn column1 = new TreeColumn(tree, SWT.NONE);
column1.setText(«Standard»);
TreeColumn column2 = new TreeColumn(tree, SWT.NONE);
column2.setText(«Widget»);
TreeItem branch = new TreeItem(tree, SWT.NONE);
branch.setText(new String [] {«Efficient», «Portable»});
TreeItem leaf = new TreeItem(branch, SWT.NONE);
leaf.setText(new String [] {«Cross», «Platform»});
branch.setExpanded(true);
branch = new TreeItem(tree, SWT.NONE);
branch.setText(new String [] {«Native», «» + SWT.getVersion()});
leaf = new TreeItem(branch, SWT.NONE);
leaf.setText(new String [] {«Cross», «Platform»});
branch = new TreeItem(tree, SWT.NONE);
branch.setText(new String [] {«Cross», «Platform»});
column1.pack();
column2.pack();
item = new TabItem(tabFolder, SWT.NONE);
item.setText(«Toolkit»);
Button button = new Button(shell, SWT.CHECK);
button.setText(«Totally»);
button.setSelection(true);
button.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
button = new Button(shell, SWT.PUSH);
button.setText(«Awesome»);
button.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
shell.pack();
shell.open();
//En este ciclo hacemos que la ventana este atenta a los eventos y pueda
//mostrarse luego cuando cerremos se ejecutara la siguiente linea de
//codigo display.dispose(); que dara por terminada la aplicacion
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
Y asi se verá nuestra aplicación
Si queremos mas informacion acerca de las clases con las que cuenta SWT podemos visitar el siguiente enlace alli buscamos las clases de SWT consultando el enlace con el nombre del paquete que queramos.