Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Swing中的代码完成和语法突出显示_Java_Javascript_Swing_Syntax Highlighting_Code Completion - Fatal编程技术网

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

Java Swing中的代码完成和语法突出显示,java,javascript,swing,syntax-highlighting,code-completion,Java,Javascript,Swing,Syntax Highlighting,Code Completion,我启动了一个项目,需要语法突出显示和代码完成(插入符号位置会弹出一个窗口提供建议),但找不到合适的解决方案。有多个Swing组件可以进行文本输入,例如JTextArea、JTextPane和JEditorPane,这使得确定哪一个是正确的组件非常困难 该项目是一个特定于程序员的文本编辑器,它将与unity游戏引擎集成。这意味着代码完成和突出显示将在JavaScript和C#语法上完成 这可能是显而易见的,但一般的想法是,当用户键入某些单词时,这些单词将被存储在文本文件中。为了完成代码,我需要能够

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

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

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


感谢您的时间:)

您可以查看(广泛使用的JNI包装)中的组件,或者查看它们的许可条款是否适合您的用例。

请参阅我的答案,其中显示了
JTextComponent
的自动完成,它可以在
JTextPane
/
JEditorPane
上显示当前插入符号索引的自动完成单词弹出窗口(idea为+1@andrewhompson):

对于
JTextField

对于其他
JTextComponent
s,即
JTextPane
JEditorPane
等,其当前插入符号索引中显示:

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

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


“谢谢您的时间:)”您有什么问题吗?如果是,是什么?顺便说一句,
JTextArea
用于纯文本,因此不适合此任务,而
JTextPane
JEditorPane
支持样式文本。第一个链接非常完美,谢谢。尽管有很多事情需要改变,但它直接解决了我的问题。我一直在想这个问题。