我正在用不同的按钮构建一个grpahic界面,
当用户单击按钮时,我使用:

actionPerformed(ActionEvent e) {
Object source = e.getSource();
if
else if
else if
...
}


问题在于,当用户单击按钮时,将调用actionPerformed(ActionEvent e),并输入与e.getSource();对应的if。
并在相应的if中执行所有指令。但是我想让用户单击不同的按钮,以便调用actionPerformed(ActionEvent e) {,即使之前actionPerformed(ActionEvent e) {的指令尚未完成。

我不知道您是否理解,但是谢谢您能帮助我!

最佳答案

如果希望GUI在长时间运行的过程中响应,则需要使用后台线程。一个SwingWorker在Swing GUI上可以很好地解决这个问题。请检查Concurrency in Swing以获得所有有关此方面的细节。

例子:


mvc-progress-bar-threading
why-does-swingworker-stop-unexpectedly
Google Search

10-07 18:17