我的Java Applet中有一个JButton。按下它之后,ActionListener必须执行大量操作。所以,正因为如此,当用户点击按钮时,它会“保持按下”一段时间(有时甚至是5分钟),而不是立即禁用它(它会在这5个小时后自动禁用)。
public void actionPerformed(ActionEvent e) {
JButton.setEnabled(false);
//...
}
我不希望用户看到它。我希望所有这些动作都在后台执行。我能做些什么来实现它?
答案 0 :(得分:8)
您应该在另一个线程中执行此类密集型任务,而不是调度程序线程。
一些有用的阅读:Worker Threads and SwingWorker
答案 1 :(得分:4)
问题是GUI-Thread很忙,在处理完成之前不会重新绘制组件
您可以在背景线程中进行活动。