2009-09-27 9 views
0

Je viens de rencontrer la lib BeanShell. Et maintenant je fais un éditeur Java avec un bouton qui exécute le code sans compiler. Pour le composant texteditor, j'utilise l'open-source jEdit Syntax Package. Voici un lien avec une démo: link.Java: mise en évidence de la syntaxe des composants keyevents

Maintenant, j'ai écrit le code qui ajoute chaque fois que l'utilisateur a appuyé sur entrer automatiquement ajouté le même nombre d'onglets comme la ligne précédente commence par. J'ai testé ce code dans un simple JTextArea et fonctionne correctement. Mais il semble que les keyevents ne travaillent pas avec le JEditTextArea J'ai mis ce JComponent dans un JPanel.

Le composant JEditTextArea est le composant de l'éditeur dans la bibliothèque lib. (Étend JComponent)

Répondre

1

Le JEditTextArea ne se comporte pas comme un mouvement normal JTextComponent. Voir le code processKeyEvent remplacé dans JEditTextArea - il évite spécifiquement les trucs KeyListener pour les performances.

La façon dont je l'ai ajouté clé logique de manipulation à JEditTextArea est sous-classe la DefaultInputHandler et passer outre addDefaultKeyBindings, appelant addKeyBinding() avec vos fixations désirées et la logique.

+0

C'est très bien vous l'avez trouvé. Mais j'ai utilisé une autre lib, un peu mieux. 'jsyntaxpane-0.9.5-b27.jar' est le nom. –

Questions connexes