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



更详细地说,我有一个接受数学运算的循环和一个转换例,它将这些运算转换为应用加法或减法。等。

循环(int i)是它读取操作的次数。条件也是输入操作的一部分,它也在开关箱内。因此,每当用户输入这个条件,以及循环应该重复的数字(例如j)时,程序应该接收j并将其与i相等,但它会冻结。我想让它分支到用户定义正确条件的那部分循环。

一旦用户点击JButton, GUI就会冻结,这样编写在TextArea中的操作就会被计算。

一旦用户点击JButton, GUI就会冻结

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

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

相关内容

  • 没有找到相关文章

最新更新