java - Eclipse SWT 组为空

标签 java eclipse swt

我正在做一个 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();

  }

}

我的问题是,这会导致两个没有任何内容的空组。

/image/QFPTA.png

这种情况以前在我身上发生过很多次,但我总是解决它。

但是由于我不知道如何完成我想要的布局,所以我来这里询问你们是否有任何其他想法。或者如果你知道我做错了什么。

最佳答案

由于 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 都应该有一个布局。这包括扩展 CompositeGroup 等类。

关于java - Eclipse SWT 组为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46770991/

相关文章:

java - tomcat中的用户验证不起作用

java - 插件未随应用程序启动

Java - 改变对按键的关注

java - java 中的 swt 中未打开且菜单未显示

java - 使用 ProjectionFactoryUtil 时出现 Liferay 异常

java - 用于存储和使用 XML 元素属性的数据结构

java - Firestore - 嵌套集合的自定义对象

java - 如何在Java中获取当前类名,包括包名?

java - Windows Mobile 的 SWT : UI Architecture

java - 如何控制JavaFX TextArea自动滚动?