挥杆文本编辑器,颜色和突出显示
问题描述:
我正在写一个应用程序,用户需要写一个javascript脚本作为输入,现在我有一个简单的JTextArea,但我想改变它会做一些亮点和代码着色使脚本更加连贯。挥杆文本编辑器,颜色和突出显示
你知道这样做的任何开源的东西吗?
感谢
答
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