我们来看一段最简单的SWT程序是什么样子:
package sean.test.swt;

import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;


public class SimplestSWT
{


public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
shell.pack();
shell.open();

while (!shell.isDisposed())
{

if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}

}

这段代码运行时会显示一个空的窗体。比较有意思的是Shell shell = new Shell(display);这一句,通过它我们可以了解到:在SWT中,子控件在构建时会传入包含该子控件的母控件引用,更进一步,在一个母控件被销毁时,包含的自控件也会自动被销毁。几乎所有常见的SWT控件都是以这种方式处理的。由于SWT使用OS自带的API,SWT控件的创建和销毁就跟纯Java实现有些不一样。
在接触SWT之前,总觉得它遥不可及,真正看到具体的代码后才发觉,原来它近在咫尺。






























这段代码运行时会显示一个空的窗体。比较有意思的是Shell shell = new Shell(display);这一句,通过它我们可以了解到:在SWT中,子控件在构建时会传入包含该子控件的母控件引用,更进一步,在一个母控件被销毁时,包含的自控件也会自动被销毁。几乎所有常见的SWT控件都是以这种方式处理的。由于SWT使用OS自带的API,SWT控件的创建和销毁就跟纯Java实现有些不一样。
在接触SWT之前,总觉得它遥不可及,真正看到具体的代码后才发觉,原来它近在咫尺。