如果我在按钮点击事件中使用无限for循环,是否有任何已知问题?实际上,首先我通过从GUI中获取设置来设置程序。然后当我点击开始按钮时,我希望连续调用一个函数。该功能不是GUI的一部分。这是该计划其余部分的功能。
答案 0 :(得分:1)
答案 1 :(得分:1)
你可以这样做,但是在一个单独的线程中,否则你将阻止UI线程,应用程序将被卡住并强行关闭。
答案 2 :(得分:1)
是的:GUI将被完全冻结。您必须在后台线程中执行长时间运行的任务。这通常使用SwingWorker来完成。请查看Swing tutorial以了解如何使用它们。
答案 3 :(得分:1)
问题是你的事件处理程序(这里是ActionListener)是在AWT事件派发线程(EDT)中调用的。
此线程与处理所有用户交互以及重新绘制应用程序的线程相同。如果你很快就没有从动作监听器返回,你的应用程序似乎会被冻结。
不要这样做,请改用新线程。 (对于GUI更新,使用EventQueue.invokeLater(或SwingUtilities.invokeLater,回复到EDT,这是相同的)。)