在按钮单击事件中使用无限循环

时间:2011-07-03 13:04:42

标签: java swing event-handling

如果我在按钮点击事件中使用无限for循环,是否有任何已知问题?实际上,首先我通过从GUI中获取设置来设置程序。然后当我点击开始按钮时,我希望连续调用一个函数。该功能不是GUI的一部分。这是该计划其余部分的功能。

4 个答案:

答案 0 :(得分:1)

是的,您的GUI将停止响应。

您应该触发工作线程来进行计算。推荐阅读:

答案 1 :(得分:1)

你可以这样做,但是在一个单独的线程中,否则你将阻止UI线程,应用程序将被卡住并强行关闭。

答案 2 :(得分:1)

是的:GUI将被完全冻结。您必须在后台线程中执行长时间运行的任务。这通常使用SwingWorker来完成。请查看Swing tutorial以了解如何使用它们。

答案 3 :(得分:1)

问题是你的事件处理程序(这里是ActionListener)是在AWT事件派发线程(EDT)中调用的。

此线程与处理所有用户交互以及重新绘制应用程序的线程相同。如果你很快就没有从动作监听器返回,你的应用程序似乎会被冻结。

不要这样做,请改用新线程。 (对于GUI更新,使用EventQueue.invokeLater(或SwingUtilities.invokeLater,回复到EDT,这是相同的)。)