Java SWT:更改文本后,标签宽度不变

时间:2018-09-23 18:28:15

标签: java eclipse label swt windowbuilder

首先,这不是重复的。我在stackoverflow上阅读了很多有关此问题的信息,并应用了所有建议的解决方案(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();
    }
});

1 个答案:

答案 0 :(得分:1)

自SWT 4.6起,触发布局更新的最可靠方法是Control.requestLayout()

它应该解决这类问题。

因此,请尝试使用[void][Win32]::MoveWindow($h1, -600, 400, 800, 400, $true)