创建一个新的 SWT 程序
创建一个名为 HelloWorld.java
的新文本文件并将其粘贴到其中:
import org.eclipse.swt.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
public class HelloWorld
{
public static void main(String[] args)
{
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
Label label = new Label(shell, SWT.NONE);
label.setText("Hello World!");
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
当你启动程序时,它看起来像这样:
仔细看看 Hello World 应用程序
Hello World 应用程序包含 HelloWorld
类定义和 main
方法。
主要方法定义了 Display
和 Shell
。显示器充当 SWT 和底层操作系统之间的接口。它以 SWT 事件循环的形式处理平台事件模型。shell 表示桌面或窗口管理器的单个窗口。
通过在窗口小部件的构造函数中指定 shell,将窗口小部件添加到 shell。在这个例子中,我们创建了一个 Label
。标签是可以显示文本或图像的小部件。在这种情况下,我们设置文本 Hello World!
它。通过将 shell 指定为构造函数中的第一个参数,将小部件添加到 shell 中。
要使标签在 shell 中可见,我们必须为其设置固定大小,或者我们需要告诉其父(shell)如何布置其子项。
该 FillLayout
是最简单的 SWT Layout
。它将所有子项组织在一行或一列中,并强制它们具有相同的大小。
以下行告诉 shell 应用其布局并变为可见:
shell.pack();
shell.open();
最后但最重要的是,我们需要定义 SWT 程序的事件循环。需要事件循环来将用户输入事件从底层操作系统小部件传输到 SWT 事件系统。
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
此循环将一直运行,直到释放 shell。一旦发生这种情况,显示器也会被丢弃,程序将终止。当程序循环时,它将读取下一个操作系统事件并将其传输到 SWT。如果没有事件,则线程将休眠直到下一个事件到达。