建立一個新的 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();
    }
}

當你啟動程式時,它看起來像這樣:

StackOverflow 文件

仔細看看 Hello World 應用程式

Hello World 應用程式包含 HelloWorld 類定義和 main 方法。

主要方法定義了 DisplayShell 。顯示器充當 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。如果沒有事件,則執行緒將休眠直到下一個事件到達。