J'ai créé un JFrame
avec JDesktopPane
, dans lequel j'appelle JInternalFrame
. Maintenant, je veux fermer ce cadre interne en appuyant sur la touche d'échappement.Comment fermer JInternalFrame en appuyant sur la touche d'échappement?
J'ai essayé 2-3 façons, mais pas de sortie.
Je l'ai fait en utilisant le code ci-dessous:
public static void closeWindow(JInternalFrame ji){ ActionListener close=New ActionListener(){ public void actionPerformed(ActionEvent e){ ji.dispose(); } };
Quand j'ai appelé méthode ci-dessus de mon constructeur de cadre interne de la classe en fournissant son objet, j'ai pu fermer. Mais quand j'écris d'autres lignes de code au constructeur. L'appel de méthode ci-dessus ne fonctionne pas. Aidez-moi, s'il vous plaît. Je n'arrive pas à trouver le problème dans le code.
- J'ai également essayé d'ajouter
KeyListener
à l'image interne, donc je peux travailler avec des coups de touches, mais cela ne fonctionne pas non plus. Encore une fois j'ai essayé de
setMnemonic
à bouton réchappés comme ci-dessous:jButton1.setMnemonic(KeyEvent.VK_ESCAPE);
mais donne également aucune sortie.
Votre 2ème approche semble être le chemin à parcourir. Vous avez peut-être ajouté le KeyListener incorrectement. – byxor
Ne pas (essayer de) poster des captures d'écran de votre code! Juste poster le code lui-même. Pour une meilleure assistance plus tôt, publiez un [MCVE] ou [Short, Self Contained, Example correct] (http://www.sscce.org/). –
Cette photo de votre écran avec du code est totalement illisible. – Jesper