gpt4 book ai didi

java - 使用 setText 方法时 JLabel 不更新

转载 作者:行者123 更新时间:2023-11-29 07:56:06 24 4
gpt4 key购买 nike

在我目前正在进行的项目中,我有几条信息想通过 Jlabel 显示出来。在 GUI 的其他地方有一些按钮和文本字段允许更改所述信息我想更新 JLabel 但文本永远不会改变,或者在启动时更新。

我曾尝试使用并发来更新标签,正如本网站其他问题中所建议的那样,但我没有成功更新标签。并发确实可以根据需要更新文本字段和组合框。

我的代码的当前迭代如下所示,

JFrame

//// This is a snippet from the JFrame

public void start()
{
this.setSize(900, 700);
this.setVisible(true);

devicePanel.populateDeviceDefinitions();
updateServiceInfo();
updateCommandInfo();
startUpdateTimer();
}

public void updateServiceInfo()
{
EventService service = JetstreamApp.getService();

generalPanel.updateServiceInfo(service.getBaseUri(),
service.getAccessKey(), String.valueOf(service.getWindowTime()));
}

public void updateCommandInfo()
{
JetstreamServiceClient client = JetstreamApp.getClient();

generalPanel.updateCommandInfo(client.getBaseUri(), client.getAccessKey());
}

名为 generalPanel 的 JPanel

//// This is a snippet from the generalPanel
//// All of the variables in the following code are JLabels

public void updateServiceInfo(String baseUrl, String accessKey,
String windowTime)
{
serviceUrl.setText(baseUrl);
serviceAccessKey.setText(accessKey);
serviceWindowTime.setText(windowTime);
}

public void updateCommandInfo(String baseUrl, String accessKey)
{
commandUrl.setText(baseUrl);
commandAccessKey.setText(accessKey);
}

标签的文本以空字符串开头,并且在窗口启动时旨在通过从相关来源获取信息来更新标签。我能否对 JLabel 为何从不更新和显示其信息有一些了解?

最佳答案

您是如何创建 JLabel 的?如果文本以“”开头,并且您已使用 new JLabel("") 创建它,则 JLabel 的宽度可能会初始化为 0,然后在您更新它时不会显示任何文本。我相信我过去遇到过这种问题。作为测试,尝试使用 new JLabel("aaaaaaaaaa") 或一些更长的字符串来创建标签,然后使用 setText("");然后稍后,当您设置文本(somethingElse)时,看看是否会导致文本显示。如果是这样,那么宽度可能是问题所在,您可以从那里进行处理。 – ajb 19 分钟前

此评论是实际答案,当使用空字符串作为文本创建 JLabel 时,使用 WindowBuilderPro 时标签的尺寸未正确设置。我的标签确实存在,并且正在使用我的问题中提供的代码进行更新,但标签不可见。

从其中包含文本的标签开始,然后将文本设置为空字符串即可正常工作。

关于java - 使用 setText 方法时 JLabel 不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17578390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com