更详细地说,我有一个接受数学运算的循环和一个转换例,它将这些运算转换为应用加法或减法。等。
循环(int i)是它读取操作的次数。条件也是输入操作的一部分,它也在开关箱内。因此,每当用户输入这个条件,以及循环应该重复的数字(例如j)时,程序应该接收j并将其与i相等,但它会冻结。我想让它分支到用户定义正确条件的那部分循环。
一旦用户点击JButton, GUI就会冻结,这样编写在TextArea中的操作就会被计算。
一旦用户点击JButton, GUI就会冻结
侦听器中调用的代码在Event Dispatch Thread (EDT)
上执行。EDT负责处理事件和绘制GUI。因此,如果您在单击该按钮时执行长时间运行的任务,您将导致GUI冻结,直到任务完成执行。
您需要在单独的线程上执行长时间运行的任务。一种方法是使用Swing Worker
。有关EDT
和SwingWorker
的更多信息,请阅读Swing教程中的并发部分。