我正在编写一个用户需要编写一个javascript脚本作为输入的应用程序,现在我有一个简单的JTextArea但我想用一些可以做一些亮点和代码着色的东西来改变它以使脚本更多相干。
你知道任何开源的东西吗?
感谢
答案 0 :(得分:10)
RSyntaxTextArea是Java Swing的语法高亮文本组件。它扩展了JTextComponent,因此它与标准的javax.swing.text包完全集成。它快速高效,可以在任何需要编辑或查看源代码的应用程序中使用。
RSyntaxTextArea最初是RText程序员文本编辑器的一部分,但目前正在制作一个单独的组件,可在任何Swing应用程序中重用。
<强>截图:强>
答案 1 :(得分:3)
试试jEdit。它主要是用Java编写的编辑器,而不是编辑器组件。但也许你可以从jar文件中提取编辑器组件。
只是一个想法。
答案 2 :(得分:1)
答案 3 :(得分: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")
然后在Hi旁边的同一个地方印有黑色。
答案 4 :(得分:0)
看一下NetBeans Platform提供的内容。我知道他们确实将组件发布为JAR文件,但它们在Maven中央仓库中不可用,这使我无法使用任何组件。