我有一个包含几个按钮的对话框。单击特定按钮时,ActionListener 会启动一个需要几秒钟才能完成的过程。在此期间我想向用户提供一些反馈。为了采取简单的方法,我在对话框“计算...”中有一个标签,该标签最初是不可见的。代码段如下所示
button_OpenHoursReport.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
lbl_Computing.setVisible(true);
new runAndRenderReport();
RunAndRenderReport.main(null);
lbl_Computing.setVisible(false);
}
});
问题是,在 RunAndRenderReport 完成之前,lbl_Computing 文本不会变得可见。显然,这对用户来说没有太大帮助。不知道从这里该去哪里。这与线程有关吗?如果是这样,我可以使用一些关于如何开始的指导。
最佳答案
actionPerformed()
在 GUI 线程 ( EDT ) 上执行,因此请避免对其执行密集操作。而是使用 SwingWorker .
关于java - label.setVisible(true) 在进程完成之前不会执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15143642/