建立一個新的 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。如果沒有事件,則執行緒將休眠直到下一個事件到達。