我正在做一个 Eclipse 插件,它是一个多页表单编辑器。 在一页上,我希望一些数据以表格和树的形式呈现。 我想将页面垂直分成两半。 为了实现这一目标,我想使用组(左组,右组)。
public class UtilityPage extends FormPage {
public UtilityPage(FormEditor editor, String id, String title) {
super(editor, id, title);
// TODO Auto-generated constructor stub
}
@Override
protected void createFormContent(IManagedForm managedForm) {
ScrolledForm scrolledForm = managedForm.getForm();
FormToolkit toolkit = managedForm.getToolkit();
Composite body = scrolledForm.getBody();
GridLayout layout = new GridLayout();
body.setLayout(layout);
layout.makeColumnsEqualWidth = true;
layout.numColumns = 2;
Group leftGroup = new Group(body, SWT.SHADOW_IN);
Group rightGroup = new Group(body, SWT.SHADOW_IN);
leftGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
rightGroup.setLayoutData(new GridData(GridData.FILL_BOTH));
Label testLabel = new Label(rightGroup, SWT.CENTER);
testLabel.setText("<Test>");
Label testLabel2 = new Label(leftGroup, SWT.CENTER);
testLabel2.setText("<Test>");
leftGroup.pack();
rightGroup.pack();
}
}
我的问题是,这会导致两个没有任何内容的空组。
这种情况以前在我身上发生过很多次,但我总是解决它。
但是由于我不知道如何完成我想要的布局,所以我来这里询问你们是否有任何其他想法。或者如果你知道我做错了什么。
最佳答案
由于 Group
扩展了 Composite
,因此您必须在组上设置布局。
类似于:
Group leftGroup = new Group(body, SWT.SHADOW_IN);
leftGroup.setLayout(new GridLayout());
Group rightGroup = new Group(body, SWT.SHADOW_IN);
rightGroup.setLayout(new GridLayout());
使用布局时,每个Composite
都应该有一个布局。这包括扩展 Composite
的 Group
等类。
关于java - Eclipse SWT 组为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770991/