建立一個新的 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 方法。

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