SWT TreeViewer调整问题大小

时间:2013-07-01 11:57:38

标签: java swt treeviewer

我在列中的一个视图中有3个treeviewer对象,就像处置一样,如果我最大化/最小化view / 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

1 个答案:

答案 0 :(得分:0)

如果你阅读GridLayout的文档,你会找到答案:

  

根据列数构造此类的新实例,是否应强制列具有相同的宽度。如果numColumns的值小于1,则布局不会设置任何控件的大小和位置。

您的问题的解决方案是替换它(因为您正在谈论列):

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

使用:

composite.setLayout(new GridLayout(3, true));