单击按钮后,java GUI在forloop期间冻结
更详细地说,我有一个接受数学运算的循环和一个转换案例,它转换这些运算以应用加法或减法。。等等
循环(inti)是它读取的操作数。该条件也是输入操作的一部分,也在开关盒内。因此,每当用户输入该条件,循环应该重复的数字(例如j)时,程序应该接受j并将其与i相等,但它会冻结。我想让它分支到循环的那个部分,在那里用户定义了正确的条件
一旦用户点击JButton,GUI就会冻结,以便计算在TextArea中编写的操作
你可以在下面搜索框中键入要查询的问题!
更详细地说,我有一个接受数学运算的循环和一个转换案例,它转换这些运算以应用加法或减法。。等等
循环(inti)是它读取的操作数。该条件也是输入操作的一部分,也在开关盒内。因此,每当用户输入该条件,循环应该重复的数字(例如j)时,程序应该接受j并将其与i相等,但它会冻结。我想让它分支到循环的那个部分,在那里用户定义了正确的条件
一旦用户点击JButton,GUI就会冻结,以便计算在TextArea中编写的操作
# 1 楼答案
在侦听器中调用的代码在
Event Dispatch Thread (EDT)
上执行。EDT负责处理事件和绘制GUI。因此,如果在单击按钮时执行长时间运行的任务,则会导致GUI冻结,直到任务完成执行您需要在单独的线程上执行长时间运行的任务。一种方法是使用
Swing Worker
。阅读Swing教程中关于Concurrency的部分,了解有关EDT
和SwingWorker
的更多信息