我在列中的一个视图中有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
答案 0 :(得分:0)
如果你阅读GridLayout
的文档,你会找到答案:
根据列数构造此类的新实例,是否应强制列具有相同的宽度。如果numColumns的值小于1,则布局不会设置任何控件的大小和位置。
您的问题的解决方案是替换它(因为您正在谈论列):
composite.setLayout(new GridLayout(1, false));
使用:
composite.setLayout(new GridLayout(3, true));