我正在寫一個應用程序,用戶需要寫一個javascript腳本作爲輸入,現在我有一個簡單的JTextArea,但我想改變它會做一些亮點和代碼着色使腳本更加連貫。揮杆文本編輯器,顏色和突出顯示
你知道這樣做的任何開源的東西嗎?
感謝
我正在寫一個應用程序,用戶需要寫一個javascript腳本作爲輸入,現在我有一個簡單的JTextArea,但我想改變它會做一些亮點和代碼着色使腳本更加連貫。揮杆文本編輯器,顏色和突出顯示
你知道這樣做的任何開源的東西嗎?
感謝
看看什麼NetBeans Platform提供。我知道他們將組件釋放爲JAR文件,但它們在Maven中央回購站中不可用,這使我無法使用它。
RSyntaxTextArea是的Java Swing一個語法高亮顯示文本組件。它擴展了JTextComponent,使它完全與標準的javax.swing.text包集成。它速度快,效率高,可用於任何需要編輯或查看源代碼的應用程序。
RSyntaxTextArea最初是RText程序員的文本編輯器的一部分,但目前正在製作一個單獨的組件,可在任何Swing應用程序中重複使用。
截圖:
我想,據我猜測,你需要比其他的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旁邊的同一個地方以黑色打印。
基於Web的編輯器? – Upperstage 2010-01-07 14:18:17