リストを保持する PreferencePage を作成しようとしています。リストは大きくなる可能性があり、リストの下にはリストと対話するボタンがあります。ボタンが常に表示されている場合に便利ですが、リストが大きくなると、PreferencePage がスクロールバーで自動拡張されます。
今のところ私の解決策は、リストを保持する ScrolledComposite です。問題は、ScrolledComposite がレイアウトを埋めていないことです。を介して手動でサイズを設定する必要がありsetSize
ます。
高さの SWT.DEFAULT:
高さは425:
リストを含む ScrolledComposite のコード:
ScrolledComposite scroll = new ScrolledComposite(
comp,
SWT.H_SCROLL | SWT.V_SCROLL);
Composite composite = new Composite(scroll, SWT.NONE);
scroll.setContent(composite);
scroll.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true,true,2,1));
GridLayout layout = new GridLayout(1, true);
composite.setLayout(layout);
List list = new List(composite, SWT.BORDER | SWT.V_SCROLL | SWT.MULTI);
GridData grid = new GridData(SWT.FILL, SWT.FILL, true, true);
grid.horizontalSpan=1;
list.setLayoutData(grid);
scroll.setExpandHorizontal(true);
composite.setSize(composite.computeSize(SWT.DEFAULT, 425));
問題は、高さの値を手動で設定せずに ScrolledComposite をレイアウトに入力する方法や、PreferncePage が自動拡張されないようにする方法です。テーブルを使用すると、穴の PreferencePage も自動展開されます。設定scroll.setExpandVertical(true)
により、PreferencePage にスクロールバーも作成され、リストが展開されます。