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