2010-01-07 56 views
6

我正在寫一個應用程序,用戶需要寫一個javascript腳本作爲輸入,現在我有一個簡單的JTextArea,但我想改變它會做一些亮點和代碼着色使腳本更加連貫。揮杆文本編輯器,顏色和突出顯示

你知道這樣做的任何開源的東西嗎?

感謝

+0

基於Web的編輯器? – Upperstage 2010-01-07 14:18:17

回答

0

看看什麼NetBeans Platform提供。我知道他們將組件釋放爲JAR文件,但它們在Maven中央回購站中不可用,這使我無法使用它。

3

嘗試jEdit。它主要是一個用Java編寫的編輯器,而不是編輯器組件。但也許你可以從jar文件中提取編輯器組件。

只是一個想法。

+1

http://syntax.jedit.org/ – Mark 2010-01-07 15:06:37

1

標準JEditorPane擺動組件將做到這一點。

UPDATE:退房APItutorial

+0

開箱即用,還是必須創建一個'EditorKit' /'Document'來解析文本並提供突出顯示? – kdgregory 2010-01-07 19:05:23

+0

@kdgregory默認情況下,JEditorPane知道html,rtf和純文本。但是可以配置更多套件/文檔 – 2010-01-07 19:24:04

10

RSyntaxTextArea

RSyntaxTextArea是的Java Swing一個語法高亮顯示文本組件。它擴展了JTextComponent,使它完全與標準的javax.swing.text包集成。它速度快,效率高,可用於任何需要編輯或查看源代碼的應用程序。

RSyntaxTextArea最初是RText程序員的文本編輯器的一部分,但目前正在製作一個單獨的組件,可在任何Swing應用程序中重複使用。

截圖:

enter image description here

1

我想,據我猜測,你需要比其他的JTextArea的東西,這樣你就可以顯示出不同的顏色不同的事情。那麼可以通過使用JTextPane或JEditorPane來完成。

這裏我給你提供了一個簡單的例子,告訴你如何給JTextPane提供指定的消息來打印和消息的顏色。

您可以更改任何輸入文本的顏色,以便它可以爲每個單詞顯示不同的顏色。

// This is in javax.swing.JTextPane; 
JTextPane tPane = new JTextPane(); 

/* Method to put text in this textPane with colour of your choice 
* For this you need these classes. 
* import javax.swing.text.AttributeSet; 
* import javax.swing.text.SimpleAttributeSet; 
* import javax.swing.text.StyleConstants; 
* import javax.swing.text.StyleContext; 
*/ 

protected static void appendToPane(String msg, Color c,String f) 
{ 
    StyleContext sc = StyleContext.getDefaultStyleContext(); 
    AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, c); 
    aset = sc.addAttribute(aset, StyleConstants.FontFamily, f); 

    int len = tPane.getDocument().getLength(); 
    tPane.setCaretPosition(len); 
    tPane.setCharacterAttributes(aset, false); 
    tPane.replaceSelection(msg); 
} 

所以,如果你喜歡這個appendToPane("HI", Color.RED, "Lucida Console") 它會顯示爲紅色HI與指定的字體。 ,如果你打電話說appendToPane(" THERE", Color.BLACK, "TIMES NEW ROMAN") 那麼THERE會在Hi旁邊的同一個地方以黑色打印。

相關問題