java - 复合 Material 中未显示 SWT 标签/按钮

标签 java swt

我正在尝试向子 Composite 添加一个 Label 或一个 Button 但它没有按预期工作。

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

知道那里发生了什么吗?

谢谢!

最佳答案

您的两个子复合体没有分配给它们的 Layout。只需添加这两行:

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

关于java - 复合 Material 中未显示 SWT 标签/按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32054034/

相关文章:

java - 使用分隔符将json字符串存储在Hadoop文件中

java - 如何使介绍 slider 在安装后只出现一次?

java - 如何拦截Java中的对象创建

java - 如何打开与 View 中的错误相关的文件

java - 如何整合selenium和ZAP

java - SWT 表查看器在行选择上添加复选框

java - 如何以编程方式调用自定义导航器中节点上的 `Refresh` 功能?

java - 在屏幕上绘图,在shell外使用java swt?

java.lang.UnsatisfiedLinkError : Cannot load 32-bit SWT libraries on 64-bit JVM in windows

java - 在 Eclipse Mars 中找不到 Tomcat Runtime