Java SWT:更改文本后标签宽度未更改
Java SWT: Label width not changing after changing it's text
我在 Stack Overflow 中阅读了很多关于此问题的信息,并应用了所有建议的解决方案(getShell 包、布局、getparent 布局等...),其中 none 有效。
我有一个带有文本值的标签。我还有一个按钮,当单击该按钮时,我正在用更长的文本更改标签的内容。问题是标签的宽度没有改变,只有一部分新的较长文本可见。
我的文字代码:
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();
}
});
从 SWT 4.6 开始,触发布局更新的最可靠方法是 Control.requestLayout()
。
应该可以解决这类问题。
所以在你的情况下尝试 lblNumbersValue.requestLayout();
。
我在 Stack Overflow 中阅读了很多关于此问题的信息,并应用了所有建议的解决方案(getShell 包、布局、getparent 布局等...),其中 none 有效。
我有一个带有文本值的标签。我还有一个按钮,当单击该按钮时,我正在用更长的文本更改标签的内容。问题是标签的宽度没有改变,只有一部分新的较长文本可见。
我的文字代码:
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();
}
});
从 SWT 4.6 开始,触发布局更新的最可靠方法是 Control.requestLayout()
。
应该可以解决这类问题。
所以在你的情况下尝试 lblNumbersValue.requestLayout();
。