4

我已经开始了一个需要语法高亮和代码完成的项目(在插入符号位置弹出一个窗口提供建议)并且找不到合适的解决方案。有多个 Swing 组件接受文本输入,例如 JTextArea、JTextPane 和 JEditorPane,这使得确定哪个是正确的使用变得更加困难。

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

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

谢谢你的时间 :)

4

2 回答 2

6

在这里查看我的答案,它显示了的自动完成JTextComponent它可以在/上显示当前插入符号索引的自动完成词的弹出窗口(+1 @AndrewThompson 的想法):JTextPaneJEditorPane

对于JTextField

使用 JTextField 作为 AutoSugestor

对于其他JTextComponents ieJTextPane等,JEditorPane它显示在当前插入符号索引中:

在此处输入图像描述

要更改单词的文本颜色(即语法突出显示),请查看此处

在此处输入图像描述

或者,如果您想要一个突出显示的单词。见这里

在此处输入图像描述

于 2013-01-09T07:26:26.010 回答
2

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

于 2013-01-09T06:49:01.397 回答