问题描述
|
我的Java Applet中有一个JButton。按下它之后,ActionListener必须执行大量操作。因此,由于这个原因,当用户单击按钮时,它会“保持按下状态”一段时间(有时甚至是5分钟),而不是立即禁用自身(在这5分钟后会禁用自身)。
public void actionPerformed(ActionEvent e) {
JButton.setEnabled(false);
//...
}
我不希望用户看到它。我希望所有这些操作在后台执行。我该怎么做才能达到目标?
解决方法
您应该在另一个线程(而不是调度程序线程)中执行此类繁重的任务。
一些有用的读物:Worker Threads和SwingWorker
,问题是GUI线程很忙,在处理完成之前不会重新绘制组件
您可以在背景线程中进行活动。