我刚刚遇到了lib BeanShell。现在,我正在制作一个带有运行按钮的Java编辑器,该按钮无需编译即可运行代码。对于texteditor-component,我使用开源jEdit Syntax Package。这是演示的链接:link。
现在,我编写了代码,每当用户按下Enter键时,就会自动添加与上一行开头相同数量的选项卡。我在一个简单的JTextArea
中测试了该代码,并且可以正常工作。但是看来关键事件在JEditTextArea
上不起作用
我将此JComponent放在JPanel
中。JEditTextArea
是lib中的编辑器组件。 (扩展JComponent
)
最佳答案
JEditTextArea
的行为不同于正常的摆动JTextComponent
。请参见JEditTextArea中重写的processKeyEvent
代码-它特别避免了KeyListener的性能。
我向JEditTextArea添加键处理逻辑的方式是将DefaultInputHandler
子类化并覆盖addDefaultKeyBindings
,并使用所需的绑定和逻辑调用addKeyBinding()
。