Comment appeler une méthode après la barre d'espace est enfoncée dans un JTextArea
Désolé pour ce qui est probablement une question simple, mais comment puis-je appeler une méthode à chaque fois la barre d'espace est enfoncée dans un JTextArea? J'ai essayé de joindre un keylistener de la zone de texte, mais je n'ai pas réussi à obtenir que cela fonctionne. Merci.
Quel est votre keylistener code?
N'utilisez pas un KeyListener. Swing a été conçu pour être utilisé avec des combinaisons de touches.
N'utilisez pas un KeyListener. Swing a été conçu pour être utilisé avec des combinaisons de touches.
OriginalL'auteur nuclearPigi | 2013-03-26
Vous devez vous connecter pour publier un commentaire.
Lire la Balançoire tutoriel sur la Comment Utiliser les raccourcis clavier.
Le tutoriel a des exemples et vous pouvez trouver beaucoup d'autres exemples dans le forum.
Lorsque vous créez l'Action personnalisée que vous souhaitez exécuter, vous permettrait d'étendre TextAction.
OriginalL'auteur camickr
OriginalL'auteur Arun Kumar Mudraboyina
Tandis que @camickr a une bonne, la solution la plus simple que j'ai upvoted, un complexe mais plus approfondies option est de travailler avec les
Document
associés à laJTextArea
, et de la remplacer c'estinsertString()
méthode. Parfois, vous le font déjà, par exemple, pour empêcher les lettres de s'ajouter à un champ numérique. L'avantage, c'est a plus d'un Raccourci clavier, c'est qu'il sera aussi attraper lorsque l'utilisateur copie et colle dans le JTextArea. Donc, si l'utilisateur copie et colle "foo bar" dans la zone, un Raccourci clavier ne sera pas attraper (je suis sûr que, je me trompe?) et le Document technique. par exemple, très schématiquement:Comme l'a souligné @camickr, au lieu de directement de sous-classement et dominante Document.insertString(), on peut définir c'est DocumentFilter à la place. (faveur de la Composition au cours de l'Héritage.) Malheureusement, c'est un peu maladroit avec quelques casting, mais voici le code de base:
C'est beaucoup plus de travail que d'un Raccourci clavier, sauf si vous avez vraiment besoin d'être aussi approfondie, ou vous êtes déjà de le faire pour une autre raison, le Raccourci clavier est plus simple. Et cela dépend de vos besoins dans votre cas, je ne pense pas que vous vous souciez si ils copier et coller.
DocumentListener
ou unDocumentFilter
selon l'exigence exacte.Vous êtes de droite à l'aide de DocumentListener/Filtre sonne très familier. Son été un moment depuis que je l'ai fait, mais je voulais mentionner le grand concept de Document. Quand j'aurais le temps je vais modifier/mettre à jour. Et, pour cette OP, votre Raccourci clavier post est presque certainement la bonne approche.
OriginalL'auteur user949300