挥杆文本编辑器,颜色和突出显示

问题描述:

我正在写一个应用程序,用户需要写一个javascript脚本作为输入,现在我有一个简单的JTextArea,但我想改变它会做一些亮点和代码着色使脚本更加连贯。挥杆文本编辑器,颜色和突出显示

你知道这样做的任何开源的东西吗?

感谢

+0

基于Web的编辑器? – Upperstage 2010-01-07 14:18:17

看看什么NetBeans Platform提供。我知道他们将组件释放为JAR文件,但它们在Maven*回购站中不可用,这使我无法使用它。

尝试jEdit。它主要是一个用Java编写的编辑器,而不是编辑器组件。但也许你可以从jar文件中提取编辑器组件。

只是一个想法。

+1

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

标准JEditorPane摆动组件将做到这一点。

UPDATE:退房APItutorial

+0

开箱即用,还是必须创建一个'EditorKit' /'Document'来解析文本并提供突出显示? – kdgregory 2010-01-07 19:05:23

+0

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

RSyntaxTextArea

RSyntaxTextArea是的Java Swing一个语法高亮显示文本组件。它扩展了JTextComponent,使它完全与标准的javax.swing.text包集成。它速度快,效率高,可用于任何需要编辑或查看源代码的应用程序。

RSyntaxTextArea最初是RText程序员的文本编辑器的一部分,但目前正在制作一个单独的组件,可在任何Swing应用程序中重复使用。

截图:

enter image description here

我想,据我猜测,你需要比其他的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旁边的同一个地方以黑色打印。