網格佈局
當在 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