Swing中的代码完成和语法突出显示

时间:2013-01-09 06:38:11

标签: java javascript swing syntax-highlighting code-completion

我已经启动了一个需要语法突出显示和代码完成的项目(在插入符号位置弹出一个提供建议的窗口),但找不到合适的解决方案。有多个Swing组件可以进行文本输入,例如JTextArea,JTextPane和JEditorPane使得确定哪个是正确的使用起来要困难得多。

该项目是一个程序员特定的文本编辑器,它将与统一游戏引擎集成。这意味着代码完成和突出显示将在JavaScript和C#语法上完成。

这可能是显而易见的,但一般的想法是,当用户键入时,某些单词会更改为指定的颜色,这些单词将存储在文本文件中。对于代码完成,我需要能够获取当前键入的字母,此检测过程将使用空格字符作为分隔符重新启动。

感谢您的时间:)

2 个答案:

答案 0 :(得分:6)

查看我的回答here,其中显示<{1>}的自动完成,它可以显示自动完成字<的弹出窗口 / em>到JTextComponent / JTextPane上的当前插入符号索引(+1 @AndrewThompson的想法):

JEditorPane

Using JTextField as AutoSugesstor

以及其他JTextField s,即JTextComponentJTextPane等,显示在当前的插入符号索引中:

enter image description here

要更改单词的文本颜色(即语法高亮),请查看here

enter image description here

或者如果你想要一个突出显示的单词。见here

enter image description here

答案 1 :(得分:2)

如果他们的许可条款适合您的使用案例,您可以查看来自jintilla的组件(广泛使用的scintilla的JNI包装器)或jedit