2013-01-09 65 views
4

我已經啓動了一個需要語法高亮和代碼完成的項目(在插入位置彈出一個窗口提供建議),並找不到合適的解決方案。有多個Swing組件可以接受文本輸入,例如JTextArea,JTextPane和JEditorPane,這使得找出哪一個是正確的使用方法顯得更加困難。Swing中的代碼完成和語法高亮

該項目是一個程序員特定的文本編輯器,將與統一遊戲引擎整合。這個含義代碼完成和突出顯示將在JavaScript和C#語法上完成。

這可能很明顯,但一般的想法是,當用戶輸入時,某些單詞會變爲指定的顏色,這些單詞將被存儲在文本文件中。爲了完成代碼,我需要能夠獲取當前輸入的字母,這個檢測過程將通過使用空格字符作爲分隔符來重新啓動。

感謝您的時間:)

+6

* 「感謝您的時間:)」 *你有問題嗎?如果是這樣,那是什麼? BTW - 'JTextArea'用於純文本,因此不適合執行此任務,而「JTextPane」和「JEditorPane」支持樣式文本。 –

回答

5

見我的回答here這表明自動完成JTextComponent,它可以顯示彈出的自動完成的話到當前插入符號索引窗口JTextPane/JEditorPane(+1 @AndrewThompson的想法):

對於JTextField

Using JTextField as AutoSugesstor

和用於其它JTextComponent小號即JTextPaneJEditorPane等其當前插入符號索引處所示:

enter image description here

要更改詞語的文本顏色(即語法突出顯示)看看here

enter image description here

或者如果你想要一個突出顯示的單詞。見here

enter image description here

+1

第一個鏈接是完美的,謝謝。雖然很多事情都需要改變,但它直接解決了我的問題。我一直在想這個問題。 – someSortOfProgrammer

2

你可以看看組件從jintillajedit(各地廣泛使用scintilla JNI封裝),如果他們的許可條款適合您的使用案例。

相關問題