gpt4 book ai didi

java - 如何在没有最终字符串的情况下通过不同线程更改 JLabel?

转载 作者:行者123 更新时间:2023-12-01 21:25:01 24 4
gpt4 key购买 nike

我知道这似乎是一个反复提出和回答的问题,但即使在梳理堆栈溢出几个小时后我也无法解决问题。如果我遗漏了一些明显的东西,请提前抱歉。

我需要在每次线程启动时更改 jLable 的文本,并在该线程结束时再次更改。简而言之,我试图显示当前正在运行的线程数。

jobQueueView 是一个静态且最终的 jLabel。 Main 是具有 jLabel 的 jFrame。 jobQueue 是一个静态 int。

在每个线程的开始处:

jobQueue += 1; refreshQueue();

在每个线程的末尾:

jobQueue -= 1;refreshQueue();

最后

public void refreshQueue() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Main().jobQueueView.setText(Integer.toString(jobQueue));
}
});

}

这行不通。有任何想法吗?谢谢

编辑:按照安德鲁·汤普森的指示 Swing JLabel text change on the running application :在按钮单击事件上

Can I change the text of a label from a Thread in Java? : 必须使字符串成为最终字符串。我不能。

Update JLabel from another thread :使用计时器,我需要线程数

JLabel on JPanel doesn't update when setText from another method : 尝试了给定的解决方案。没有成功

Thread and JLabel in Swing- Not working properly :更多的按钮点击,但不同的解决方案。还是没用

最佳答案

看来您每次都在创建一个新框架。

new Main().jobQueueView.setText(Integer.toString(jobQueueCount ));

所以你有多个框架但有一个静态标签。这可能会导致问题。通过如下静态方式访问 jobQueueView。

Main.jobQueueView.setText(Integer.toString(jobQueueCount ));

关于java - 如何在没有最终字符串的情况下通过不同线程更改 JLabel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38306209/

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