gpt4 book ai didi

java - 当线程运行时重新绘制 swing 组件

转载 作者:行者123 更新时间:2023-11-30 02:58:56 25 4
gpt4 key购买 nike

我有一个线程,当我按下开始按钮时就会启动该线程。我想要做的是重新绘制标签,以便它们包含我的线程所做更改的信息。我面临的唯一问题是 jLabels 仅在线程运行完毕后才重新绘制。有人可以给我任何关于如何在线程运行时重新绘制它的建议吗?谢谢。

这是我的代码片段:

Store m = new Store(); //Store extends Thread
private void startActionPerformed(java.awt.event.ActionEvent evt) {
....
//I get the simulation time of the store from a textbox
//the thread runs for this number of seconds
//when it is done, the store is closed(the open variable is set to false)
....

m.start();

while (m.isOpen()) {
queue0.setText(String.valueOf(m.clientiCasai(0)));
//here I will have more queues
....
noOfClients.repaint(); //this is the label that should show the number of clients in queue 0
}
}

最佳答案

问题是实际的绘制也是在 EDT 的事件循环期间完成的;你的 while() 循环基本上阻止了 EDT 的继续。一种可能的解决方法是有一个额外的线程来负责更新标签。

关于java - 当线程运行时重新绘制 swing 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36426455/

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