我们来看一段最简单的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之前,总觉得它遥不可及,真正看到具体的代码后才发觉,原来它近在咫尺。
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之前,总觉得它遥不可及,真正看到具体的代码后才发觉,原来它近在咫尺。
博客给出了一段最简单的SWT程序代码,运行该代码会显示一个空窗体。介绍了SWT中,子控件构建时传入母控件引用,母控件销毁时子控件自动销毁的特点,还指出SWT使用OS自带API,其控件创建和销毁与纯Java实现不同。
517





