单击Java Applet后,JButton“保持按下”状态

时间:2011-05-24 14:57:27

标签: java multithreading swing jbutton

我的Java Applet中有一个JButton。按下它之后,ActionListener必须执行大量操作。所以,正因为如此,当用户点击按钮时,它会“保持按下”一段时间(有时甚至是5分钟),而不是立即禁用它(它会在这5个小时后自动禁用)。

public void actionPerformed(ActionEvent e) {
  JButton.setEnabled(false);
  //...
}

我不希望用户看到它。我希望所有这些动作都在后台执行。我能做些什么来实现它?

2 个答案:

答案 0 :(得分:8)

您应该在另一个线程中执行此类密集型任务,而不是调度程序线程。

一些有用的阅读:Worker Threads and SwingWorker

答案 1 :(得分:4)

问题是GUI-Thread很忙,在处理完成之前不会重新绘制组件

您可以在背景线程中进行活动。