单击按钮后,GUI在for循环期间冻结

时间:2015-05-24 18:34:33

标签: java user-interface for-loop branch operations

在更多细节上,我有一个循环,它接受数学运算和一个切换案例,在这个案例中,它转换这些操作以便应用加法或减法等。

循环(int i)是它读取的操作数。条件也是输入操作的一部分,它也在开关盒内。因此,每当用户输入该条件,并且循环应重复的数字(例如j)时,程序应该接受j并使其与i均衡但它冻结。我希望它分支到用户定义的循环部分以使条件正确。

一旦用户点击JButton,GUI就会冻结,以便计算用TextArea编写的操作。

1 个答案:

答案 0 :(得分:1)

  

一旦用户点击JButton

,GUI就会冻结

在侦听器中调用的代码在Event Dispatch Thread (EDT)上执行。 EDT负责处理事件和绘制GUI。因此,如果在单击按钮时执行长时间运行的任务,则会导致GUI冻结,直到任务完成执行。

您需要在单独的线程上执行长时间运行的任务。一种方法是使用Swing Worker。有关EDTSwingWorker的更多信息,请阅读Concurrency上的Swing教程中的部分。