【发布时间】:2010-12-26 00:26:05
【问题描述】:
我正在与一个我不太理解的错误作斗争。
我有一个Java 类,我们称它为DownloadTable,它派生自JDTable。
这些类中的每一个都实现KeyListener。
我希望基类JDTable 来处理一些击键,所以我将this.AddListener(this) 放在它的构造函数中并创建一个键处理程序
public void keyPressed(KeyEvent e) {...}
然后我希望派生类DownloadTable 自己做一些特殊的键盘处理,所以我重复这个过程并在那里添加键盘处理程序。
我还从派生类的键处理程序中添加了对super.processKeyEvent() 的调用,以将派生处理程序和基本处理程序连接在一起。
问题是它没有按预期工作,每当调用super.ProcessKeyEvent 时我都会遇到堆栈溢出异常。在调试器中运行时,甚至不会调用父级的事件处理程序。我错过了一些明显的东西吗? super.processKeyEvent() 不会以某种方式调用超类的keyPressed() 处理程序吗?谢谢。
附加堆栈:
线程“AWT-EventQueue-1”中的异常 java.lang.StackOverflowError 在 jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed(DownloadTable.java:253) 在 java.awt.Component.processKeyEvent(未知来源) 在 javax.swing.JComponent.processKeyEvent(未知来源) 在 jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed(DownloadTable.java:253) 在 java.awt.Component.processKeyEvent(未知来源) 在 javax.swing.JComponent.processKeyEvent(未知来源) 在 jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed(DownloadTable.java:253) 在 java.awt.Component.processKeyEvent(Unknown Source)
【问题讨论】:
-
发布DownloadTable.keyPressed方法的内容。
标签: java user-interface stack