Je me bats une erreur que je ne comprends pas bien. J'ai une classe en Java, appelons-la DownloadTable
dérivée d'un JDTable
. Chacune de ces classes implémente KeyListener
.débordement de pile dans swing à processKeyEvent
Je voudrais la classe de base JDTable
pour gérer certaines touches, donc je mets this.AddListener(this)
dans son constructeur et crée un gestionnaire clé
public void keyPressed (KeyEvent e) {...}
Ensuite, j'aimerais que la classe dérivée DownloadTable
fasse son propre traitement de clavier, donc je répète le processus et j'y ajoute également un gestionnaire de clavier. J'ai également ajouté un appel à super.processKeyEvent()
à partir du gestionnaire de clés de la classe dérivée pour relier le gestionnaire dérivé et le gestionnaire de base.
Le problème est que cela ne fonctionne pas comme prévu et j'obtiens une exception de débordement de pile chaque fois que super.ProcessKeyEvent
est appelée. Lorsqu'il est exécuté dans le débogueur, le gestionnaire d'événements du parent n'est même pas appelé. Est-ce que je manque quelque chose d'évident? Le super.processKeyEvent()
ne va-t-il pas invoquer le gestionnaire keyPressed()
de la superclasse? Merci.
pile ci-joint:
Exception in thread "AWT-EventQueue-1" java.lang.StackOverflowError à jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed (DownloadTable.java: 253) at java.awt.Component.processKeyEvent (source inconnue) à javax.swing.JComponent.processKeyEvent (source inconnue) à jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed (DownloadTable.java: 253) at java.awt.Component.processKeyEvent (source inconnue) at javax.swing.JComponent.processKeyEvent (source inconnue) à jd.gui.swing.jdgui.views.downloadview.DownloadTable.keyPressed (DownloadTable.java:253) à java.awt.Component.processKeyEvent (Source inconnue)
Afficher le contenu de la méthode DownloadTable.keyPressed. –