当前位置: 首页 > 知识库问答 >
问题:

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

公孙辰龙
2023-03-14

我在Stack Overflow中阅读了很多关于这个问题的信息,并应用了所有建议的解决方案(getShell pack、布局、get父布局等…),但都不起作用。

我有一个带文本值的标签。此外,我有一个按钮,当点击该按钮,我改变了较长的文本标签的内容。问题是标签的宽度没有改变,只有一部分新的更长的文本是可见的。

我的文字代码:

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个答案

章安易
2023-03-14

从 SWT 4.6 开始,触发布局更新的最可靠方法是控制。

它应该解决这些问题。

因此,在您的情况下,请尝试lblNumbersValue.requestLayout();.

 类似资料:
  • 我正在尝试为用Java编写的应用程序制作GUI。 我用Scene Builder制作了fxml文档,正确设置了fx: id,现在我正在尝试对表单进行简单的更改。 我的DocumentController: 我的外汇主文件: 我现在想要的一切,都是将LabelData设置为实际时间戳,但当我运行FX主文件时,什么都不会发生。有人能帮我吗? 谢谢你保罗 更新时间: 我的整个FXML文档: 我想要的一切

  • 问题内容: 我想对图中的几个选定的刻度线标签进行一些修改。 例如,如果我这样做: 字体大小和刻度标签的方向已更改。 但是,如果尝试: 蜱标签不修改。另外,如果我这样做: 什么都不会打印。 这里有些奇怪。当我尝试这个: 仅打印空字符串,但图中包含标记为“ 0.0”,“ 0.5”,“ 1.0”,“ 1.5”和“ 2.0”的刻度。 问题答案: 警告:除非已设置为字符串(例如在boxplot中通常是这种情

  • 问题内容: 为什么以下内容对我不起作用? 问题答案: 因为您的脚本在运行之前运行,所以标签存在于页面中(在DOM中)。可以将脚本放在标签后,或者等待文档完全加载(使用OnLoad函数) 这行不通: 这将起作用: 此示例(jsfiddle链接)维护顺序(首先是脚本,然后是标签),并使用onLoad:

  • 问题内容: 对于y轴上的每个刻度标签,我想更改: 我正在绘制对数日志数据(以2为底),但是我希望标签显示原始数据值。 我知道我可以得到当前的y标签 这给了我一个列表: 每个列表都是 我在http://matplotlib.org/users/text_props.html上查看了文本对象的文档, 但是我仍然不确定更改每个文本标签中的字符串的正确语法是什么。 更改标签后,可以使用以下方法在轴上设置它

  • 问题内容: 我在使用键绑定来更改标签或任何参数的值时遇到麻烦。这是我的代码: 运行此命令时,我单击输入框并按Enter,希望标签将值更改为“更改值”。但是,尽管它确实打印了该文本,但标签保持不变。 通过查看关于类似问题的其他问题,我发现了如何在课堂外使用其中的一些功能,但是在课堂上进行操作时遇到了一些困难。 另外,顺便提一下,“主人”在tkinter中扮演什么角色? 问题答案: 上面的句子使lab