我正在使用不同的按钮构建一个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)
{的说明尚未完成。
我不知道你是否理解,但如果你能帮助我,谢谢你!
答案 0 :(得分:5)
如果希望GUI在长时间运行的进程中响应,则需要使用后台线程。 SwingWorker在Swing GUI中运行良好。有关此问题的详细信息,请查看Concurrency in Swing。
示例:
答案 1 :(得分:2)
您需要使用SwingWorker
。它可以在后台完成工作而不会冻结UI。
Here是您可以查看如何使用它们的问题。
或者您可以使用官方oracle documentation作为SwingWorker
。