swing Java:语法突出显示组件keyevents
我刚刚遇到了自由党。现在我正在制作一个Java编辑器,它带有一个运行按钮,可以在不编译的情况下运行代码。对于texteditor组件,我使用开源jEdit Syntax Package。这里有一个演示链接:link
现在我编写了代码,每当用户按下enter键时,就会自动添加与前一行开头相同数量的选项卡。我在一个简单的JTextArea
中测试了这段代码,并且工作正常。但keyevents似乎不适用于JEditTextArea
我把这个JComponent放在一个JPanel
中
JEditTextArea
是库中的编辑器组件。(扩展JComponent
)
# 1 楼答案
JEditTextArea
的行为与正常的swingJTextComponent
不同。请参阅JEditTextArea中被重写的processKeyEvent
代码——它特别避免了KeyListener的性能问题我将密钥处理逻辑添加到JEditTextArea的方法是对
DefaultInputHandler
进行子类化,并覆盖addDefaultKeyBindings
,使用所需的绑定和逻辑调用addKeyBinding()