我一直在做JFrame的一点点,并且自从我开始使用Mouselistener(或任何事件列表器)以来,事情会平稳运行大约2分钟左右。然后我会得到大量的重复错误,程序仍然可以运行,但我可以使用任何事件侦听器。错误基本上是这样的: ...在AWTEventMulticaster.mouseEntered()中导致无限递归的原因是什么?
(无法赶上及时顶线,但像在线程异常“的AWT - EventQueue的 - 0” java.lang.StackOverflowError的) (后面)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
at java.awt.AWTEventMulticaster.mouseEntered(AWTEventMulticaster.java:282)
...
重复数百行,其中mouseEntered可以是任何事件列表。
我已经花了很多时间检查所有整数,看看它们是否过高(发现一个,修复它,仍然发生)。我也到处检查了一个可以调用自己的值,但这没什么意义,因为它发生在2分钟内。
我不认为与任何特定的代码有关,只是告诉我它是什么意思,以及如何解决它。
如果您可以发布'MouseListener'的代码以及如何使用它,这将有所帮助。 – 2011-05-22 21:08:18
'我不认为是与任何特定的代码有关 - 你怎么知道这一点?你采取了哪些调试步骤来证明这一说法?在那之前,你有一个纯粹而简单的错误,代码将帮助我们解决它。所有的Swing代码都在EDT上被调用?有递归吗?编辑:事实上,我会假定有递归进行,无论你看不到。你的代码再次为我们回答这个问题。 – 2011-05-22 21:12:32
好的,...我想你已经解决了这个问题。祝你好运。 – 2011-05-22 22:24:16