我正在开发一个项目,点击按钮即可完成三项任务,这需要大约时间。 2-3 分钟我正在使用下面的代码更改 jLabel 的文本
lblStatus.setText( "Phase1 done successfully !!!, Phase2 started " );
但我只得到“所有阶段都成功完成!!!”所有运行完成后 jLabel 中的文本。
最佳答案
如果您在 EDT 中运行长时间运行的任务,UI 将卡住,直到您的任务完成。因此,您应该在后台线程中执行长时间运行的任务。在后台线程中,您可以使用 SwingUtilties.invokeLater()
来更新 UI。
示例:
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
lblStatus.setText( "Phase1 done successfully !!!, Phase2 started " );
}});
关于java - 如何在运行时在 swing 应用程序中更改 jlabel 文本/颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39915701/