網格佈局

當在 Composite(或 Composite 的子類)上使用 GridLayout 時,子控制元件應將其佈局資料設定為 GridData唯一例項,以指示子項應如何在父項中顯示:

// ...
final Shell shell = new Shell(display);
shell.setLayout(new GridLayout());

final Composite child = new Composite(shell, SWT.NONE);
child.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
// ...

未能在子控制元件上設定 GridData 物件可能會導致孩子無法按照需要定位。此外,如果孩子是 Composite(或 Composite 的子類),則可能根本看不到孩子及其孩子。

如果使用了錯誤的佈局資料(例如 FormData 而不是 GridData),結果將是執行時的 ClassCastException

執行緒 main 中的異常 java.lang.ClassCastException:org.eclipse.swt.layout.FormData 無法強制轉換為 org.eclipse.swt.layout.GridData