我正在創建一個使用JLabel的progressBar。問題是當我將這個標籤添加到我的框架並執行一些其他任務時,我的JFrame凍結。有沒有像調用和等待swing來完成繪圖的方法?如何強制java繪製擺動標籤?
private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {
JLabel loadingBar = new JLabel("test");
myFrame.add(loadingBar);
doSomeOtherTasks();
}
能否請您展現出[MCVE]僅此代碼不應凍結 –
當您的UI凍結時,您在https://docs.oracle.com/javase/tutorial/uiswing/concurrency/dispatch.html – GhostCat
上做了錯誤的事情。這不是強制的問題Java通過在EDT上執行長時間運行的任務來更新標籤,使其不會阻塞Event Dispatch Thread。換句話說:不要阻塞EDT(Event Dispatch Thread)。發生這種情況時,GUI將「凍結」。有關詳細信息和修補程序,請參見[Swing中的併發](https://docs.oracle.com/javase/tutorial/uiswing/concurrency/)。 –