我使用JEditorPane作为显示代码的组件。 JEditorPane驻留在我的Netbeans Platform应用程序的自定义PropertyEditorSupport中,并显示在OutlineView和Properties窗口中。
我已经使用DocumentFilter将JEditorPane限制为仅一行。但是我无法重建JTextField所具有的功能,通过按ENTER键完成对组件的输入。
我已经考虑过将一个KeyListener事件添加到我的JEditorPane中,但我不确定在事件发生时该怎么做。是否有一种方法可以调用"完成文本的输入"?
答案 0 :(得分:0)
我使用JEditorPane作为显示代码的组件。 我已经将JEditorPane限制为仅限一行
这两个陈述似乎相互矛盾。通常代码由多行组成,而不是一行。
在任何情况下,如果您只是显示文本,那么我将使用JTextPane,因为它支持文本属性。 JEditorPane用于显示HTML。
我已经考虑过添加KeyListener事件
不要使用KeyListener。 Swing旨在与Key Bindings
一起使用。基本上,您创建了Action
(在您的情况下,您将扩展TextAction
)并将Action
绑定到KeyStroke
。查看Key Bindings,其中包含更多信息以及How to Use Key Bindings
上Swing教程的链接。