Fecha
septiembre 2012
L M X J V S D
« Jul   Nov »
 12
3456789
10111213141516
17181920212223
24252627282930
Bienvenidos
Temas de interes general
Contador
  • 0Lecturas hoy:
  • 0Lecturas ayer:
  • 2069Total de visitas:
  • 0Hoy:
  • 0Ayer:
Contador de Visitas

Archive for septiembre, 2012

«SWT Standard Widget Toolkit»

martes, septiembre 4th, 2012

¿Qué es SWT?
SWT es un framework para crear interfaces gráficas en Java (como Swing o Awt) que crea a través de JNI (Java Native Interface) interfaces gráficas nativas del Sistema Operativo en donde ejecutemos nuestra aplicación SWT. Esto quiere decir que con el mismo código visualizaremos en cada Sistema Operativo nuestras ventanas como si hubieran sido creadas para ese SO en específico.

 

Es una librería que la podemos encontrar SWT.jar según la nuestro sistema operativo la descargamos www.java2s.com/Code/Jar/s/Downloadswt37M7win32x8664jar.htm

Este es de 64 bits para Windows , ya me había descargado uno pero no sabia que era de 32 bits y no sabia que había diferencia entre ellos .  Despues de descargarlos tenemos que descomprimirlos y agregar a nuestra librería como cualquier otra por su puesto estoy trabajando en netbeans, la cual pensé que solo se podía trabajar en Ubuntu con estas librerías porque no hay ejemplos con netbeans.

Luego creo dos clases

import org.eclipse.swt.SWT;

import org.eclipse.swt.layout.RowLayout;

import org.eclipse.swt.widgets.Button;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

 

public class MisSWT extends SWTt {

static {

Display.setAppName(«»);

}

 

protected void createGUI(Shell shell) {

shell.setLayout(new RowLayout());

new Button(shell, SWT.PUSH).setText(«Boton Presenta»);

 

new Button(shell, SWT.PUSH).setText(«Boton Muestra»);

new Text(shell, SWT.SINGLE | SWT.BORDER).setMessage(«Texto…»);

}

 

protected void destroyGUI() {

}

}

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import javax.swing.JApplet;

import org.eclipse.swt.SWT;

import org.eclipse.swt.awt.SWT_AWT;

import org.eclipse.swt.widgets.Control;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Event;

import org.eclipse.swt.widgets.Listener;

import org.eclipse.swt.widgets.Shell;

 

abstract public class SWT extends JApplet {

static {

System.setProperty(«sun.awt.xembedserver», «true»);

}

private Display display;

private Shell shell;

private Canvas canvas;

private Control focusControl;

 

protected Display getDisplay() {

return display;

}

abstract protected void createGUI(Shell shell);

abstract protected void destroyGUI();

private void buildSWTBase() {

display = new Display();

 

// activar soporte para TAB y SHIF-TAB

display.addFilter(SWT.FocusIn, new Listener() {

@Override

public void handleEvent(Event event) {

focusControl = (Control)event.widget;

}

});

shell = SWT_AWT.new_Shell(display, canvas);

createGUI(shell);

shell.open();

while (!shell.isDisposed())

if (!display.readAndDispatch())

display.sleep();

destroyGUI();

display.dispose();

}

 

@Override

public void start() {

canvas = new Canvas();

canvas.setFocusable(true);

this.setLayout(new BorderLayout());

this.add(canvas, BorderLayout.CENTER);

new Thread() {

@Override

public void run() {

buildSWTBase();

};

}.start();

canvas.addKeyListener(new KeyAdapter() {

@Override

public void keyPressed(KeyEvent e) {

final KeyEvent _e = e;

display.syncExec(new Runnable() {

@Override

public void run() {

if (_e.getKeyCode() == KeyEvent.VK_TAB

&& _e.getModifiers() == 0)

focusControl.traverse(SWT.TRAVERSE_TAB_NEXT);

else if (_e.getKeyCode() == KeyEvent.VK_TAB

&& _e.getModifiers() == KeyEvent.SHIFT_MASK)

focusControl.traverse(SWT.TRAVERSE_TAB_PREVIOUS);

else if (_e.getKeyCode() == KeyEvent.VK_ENTER

&& _e.getModifiers() == 0)

if (shell.getDefaultButton() != null &&

shell.getDefaultButton().isVisible())

shell.getDefaultButton().notifyListeners(

SWT.Selection, null);

}

});

}

});

}

}

Y no se ejecutan como cualquier proyecto se ejecuta el primer archivo solito encontré el ejemplo en Ubuntu en esta dirección  http://danjared.wordpress.com/2011/07/15/applet-java-con-swt/#more-403

En conclusión me parecio muy interesante ya que no fue tan difícil la creación espero se les haga fácil