调整标签大小以适合内容

时间:2019-04-16 07:24:20

标签: java swt

这是方案: 我正在创建一个小部件,它将显示一个文本,后跟进度条。 为此,创建一个Composite

container = new Composite(parent, SWT.BORDER);
container.setLayoutData(layoutData);
container.setLayout(new GridLayout(1, true));

为此,我添加了Label

messageText = new Label(container, SWT.WRAP | SWT.BORDER | SWT.CENTER);
messageText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false));

后跟一个拿着进度条的组合键:

  final Composite progressContainer = new Composite(container, SWT.BORDER);
progressContainer
    .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

这是结果:

enter image description here

我希望标签会增加以能够包含全文。我一直在尝试按照this post的说明进行操作,但是由于我无法实现所需的行为,因此我必须缺少一些内容。

感谢您的输入。

1 个答案:

答案 0 :(得分:1)

您指定的GridData使用所有可用的水平空间,而垂直空间仅使用为控件计算的初始大小。

要使用所有可用的垂直空间,请使用:

messageText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

请注意,您还指定progressContainer也应占用所有可用空间-这可能不是您想要的,因此也可能需要更改它。可能:

progressContainer.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false));

如果您希望在更改文本时调整消息文本的大小,请致电

container.layout(true);
设置新文本后,

强制重新计算尺寸。使用原始的GridData值。

相关问题