我在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();
}
});
发布于 2018-09-24 03:36:24
从SWT4.6开始,触发布局更新的最可靠方法是Control.requestLayout()
。
它应该可以解决这类问题。
因此,在您的示例中,尝试使用lblNumbersValue.requestLayout();
。
https://stackoverflow.com/questions/52469068
复制相似问题