0

配置のような列の 1 つのビューに 3 つのツリービューアー オブジェクトがあり、ビュー/Eclipse ウィンドウを最大化/最小化すると、それらのサイズを均等に増やしたいと考えています。これが私のコードです:

Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout(1, false));

treeViewer1 = new TreeViewer(composite, SWT.BORDER);
tree1 = treeViewer1.getTree();
tree1.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
tree1.pack();

treeViewer2 = new TreeViewer(composite, SWT.BORDER);
tree2 = treeViewer2.getTree();
tree2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
tree2.pack();

treeViewer3 = new TreeViewer(composite, SWT.BORDER);
tree3 = treeViewer3.getTree();
tree3.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));            
tree3.pack();

ただし、特定のツリーのコンテンツが現在の表示スペースを超えている場合、ビューを最大化/最小化すると、そのツリーの表示スペースが他のツリーよりも大きくなります。

コンテンツのサイズによるこのサイズ変更動作を防ぐ方法はありますか? どうもありがとう、ND

4

1 に答える 1

0

のドキュメントを読むとGridLayout、答えが見つかります。

指定された列の数と、列を同じ幅にする必要があるかどうかを指定して、このクラスの新しいインスタンスを構築します。numColumns の値が 1 未満の場合、レイアウトはコントロールのサイズと位置を設定しません。

問題の解決策はこれを置き換えることです(列について話しているため):

composite.setLayout(new GridLayout(1, false));

と:

composite.setLayout(new GridLayout(3, true));
于 2013-07-03T14:55:20.813 に答える