【发布时间】:2016-09-18 22:24:35
【问题描述】:
当用户单击按钮时,我正在尝试更新 JLabel,例如以下伪代码:
private static void ButtonAction()
{
// Set label to `loading..`
// Perform action
// Set label to `ready.`
}
我尝试使用:
frame.invalidate();
frame.validate();
frame.repaint();
到目前为止没有运气。或者我的按钮动作太快而看不到它的切换?
如何确保用户同时看到loading.. 和ready?
【问题讨论】:
-
您在两者之间执行什么类型的操作?
-
1) 不要阻塞 EDT(事件调度线程)。发生这种情况时,GUI 将“冻结”。有关详细信息和修复,请参阅Concurrency in Swing。 2) 为了尽快获得更好的帮助,请发帖minimal reproducible example 或Short, Self Contained, Correct Example。
标签: java swing jframe jpanel rendering