代码之家  ›  专栏  ›  技术社区  ›  mediocre

SWT标签/按钮未显示在复合材料中

  •  1
  • mediocre  · 技术社区  · 9 年前

    我正在尝试添加 Label Button 给一个孩子 Composite 但它并没有像预期的那样工作。

    display = Display.getCurrent();
    parentShell = display.getActiveShell();
    shell = new Shell(parentShell, SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL);
    shell.setText(title);
    
    GridLayout layout = new GridLayout(1, false);
    shell.setLayout(layout);
    
    // Content composite
    contentComposite = new Composite(shell, SWT.BORDER);
    GridLayout contentLayout = new GridLayout(2, true);
    contentComposite.setLayout(contentLayout);
    contentComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    
    // Default Version
    defaultVersionComposite = new Composite(contentComposite, SWT.BORDER);
    defaultVersionComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    
    // Versions in Tabs
    versionComposite = new Composite(contentComposite, SWT.BORDER);
    versionComposite.setLayoutData(new GridData(SWT.FILL, SWT.BEGINNING, true, false));
    Button button = new Button(versionComposite, SWT.PUSH);
    button.setText("Test");
    

    现在看起来像这样。

    enter image description here

    知道那里发生了什么吗?

    谢谢

    1 回复  |  直到 9 年前
        1
  •  3
  •   Baz    9 年前

    你的两个子组合没有 Layout 分配给他们的。只需添加以下两行:

    defaultVersionComposite.setLayout(new GridLayout());
    versionComposite.setLayout(new GridLayout());