工作的项目中可能会用到SWT,刚听到这个名字时,我还不知道是什么。。。没有反应过来。翻看资料后,其实是AWT的另外一种实现。当时我就纠结了,为什么项目不用swing呢??我之前学se的时候,可是用了swing做过几个小项目。所以对swing比较熟悉。用swing起来得心应手。既然项目要用,就学吧!!
首先到eclipse的官网下载最新的SWT包,http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.3-201306052000/swt-4.3-win32-win32-x86.zip。当前SWT最新的版本是4.3。下载完解压,将里面的swt.jar添加到项目的classpath中。
一个简单的hello world:
public class SwtTest
{
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("hello world");
shell.setSize(200, 200);
Text text = new Text(shell, SWT.CENTER);
text.setText("hello world");
text.setForeground(new Color(display, new RGB(123, 46, 159)));
text.setSize(200, 200);
shell.open();
while(! shell.isDisposed())
{
if(! display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
运行结果:
可以简单讲Display理解为一个顶级容器,Shell是一个次顶级容器(窗口容器)而Text则是一个组件。可以看到Swt的风格是组件的构造方法中一定要传入父容器作为参数。其实理解起来很简单,就是说这个组件放到哪个父容器中。而且第二个参数则是第一了组件的显示风格。
display.dispose();就是将窗口显示出来。