【发布时间】:2018-09-23 18:28:15
【问题描述】:
我在 Stack Overflow 中阅读了很多关于这个问题的信息,并应用了所有建议的解决方案(getShell 包、布局、getparent 布局等),但没有一个有效。
我有一个带有文本值的标签。我还有一个按钮,当单击该按钮时,我正在用更长的文本更改标签的内容。问题是标签的宽度没有改变,只有一部分新的较长文本可见。
我的文字代码:
Composite composite_2 = new Composite(this, SWT.NONE);
composite_2.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, true, true, 1, 1));
composite_2.setLayout(new GridLayout(2, false));
Label lblNumbers = new Label(composite_2, SWT.NONE);
lblNumbers.setText("Números:");
Label lblNumbersValue = new Label(composite_2, SWT.NONE);
lblNumbersValue.setText("...");
。 . .
btnElegirNmeros.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
lblNumbersValue.setText("asddadadasdasdasd");
lblNumbersValue.getParent().layout();
lblNumbersValue.pack();
getShell().pack();
getShell().layout();
}
});
【问题讨论】:
-
我无法复制这个问题,你能提供一个minimal reproducible example 吗?如果一切设置正确,那么
lblNumbersValue.requestLayout();就足够了。 -
成功了! @LorisSecuro 请将其作为 asnwer 发布,我会接受。 requestLayout 解决了问题
标签: java eclipse label swt windowbuilder