网上有很多教程,给出了非常复杂或不起作用的例子。似乎人们建议其他人使用netbeans提供的语法荧光笔,但我完全不知道如何这样做!
我已经检查了很多这样的网站,我能找到的最好的是: http://www.antonioshome.net/kitchen/netbeans/nbms-standalone.php
但是我仍然无法使用这个例子(因为它针对的是那些不想使用Netbeans平台而只是其中一部分的人),我仍然不确定我是否可以 只需以简单的即插即用方式使用语法高亮。例如netbeans支持 默认情况下有几种语言亮点,我可以使用JEditorPane中的荧光笔来解析Ruby / Python / Java吗?或者我需要编写自己的解析器: - | ?
我将非常感谢一个关于如何使用netbeans平台在独立应用程序中插入语法高亮的简单示例。
答案 0 :(得分:1)
答案 1 :(得分:1)
喂,
如果你想要一个独立的平台应用程序,我发现类似的信息缺乏,最后这里是我在自己的应用程序中做到的,是的,它可能会重新发明轮子..但是因为我找不到轮到第一位,不妨创造一个..
我在这里获取了有关如何创建java编辑器工具包的信息: http://java.sun.com/products/jfc/tsc/articles/text/editor_kit/index.html
使用必要的文件构建一个小包,并将其拖入其中一个模块下的平台应用程序中。您将需要tools.jar,其中所有这些Scanner位都隐藏,它位于JDK install / lib文件夹下 - 您必须将其包装起来。
然后使用测试程序中的示例来弄清楚如何设置样式, - 我喜欢你对令牌着色的完全控制。
从包含的JavaKitTest中无耻地复制..
JavaContext styles = kit.getStylePreferences();
Style s;
//Make Comment lurid green
s = styles.getStyleForScanValue(Token.COMMENT.getScanValue());
StyleConstants.setForeground(s, new Color(102, 153, 153));
//Make String err.. wotever color that is..
s = styles.getStyleForScanValue(Token.STRINGVAL.getScanValue());
StyleConstants.setForeground(s, new Color(102, 153, 102));
//Make NEW nice n red
s = styles.getStyleForScanValue(Token.NEW.getScanValue());
StyleConstants.setForeground(s, new Color(102, 10, 10));
//Do some other scan codes for keywords
Color keyword = new Color(102, 102, 255);
for (int code = 70; code <= 130; code++) {
s = styles.getStyleForScanValue(code);
if (s != null) {
StyleConstants.setForeground(s, keyword);
}
}
这只是一个java扫描程序,当然在这个例子中你可以使用语法和标记,并提出自己的规则,我认为有关于所有这些内容的教程..
希望这有点帮助。
答案 2 :(得分:0)
部分答案:
显然,以下内容将启用Java的语法突出显示(以及一些代码完成),但它似乎不适用于其他语言(java,XML除外),即使它应该[1]。此外,我找不到任何启用行号的方法(它们已启用,但它们没有显示)!
yourEditor.setContentType("text/x-java");
yourEditor.putClientProperty("HighlightsLayerIncludes", "^org\\.netbeans\\.modules\\.editor\\.lib2\\.highlighting\\.SyntaxHighlighting$");
如果有人决定帮助解决这个问题,那么包含行号和其他属性在内的更为统一的示例将会很好。当然它应该不是很复杂?!
[1] http://netbeans.sourcearchive.com/lines/6.5-0ubuntu2/CodeTemplatesPanel_8java-source.html
答案 3 :(得分:0)
以下内容应该为您提供javascript语法高亮显示。查找其他类型的mimes以使用不同的语法。
File tmpFile = File.createTempFile("tmp_sejsrunner", ".js");
tmpFile = FileUtil.normalizeFile(tmpFile);
FileObject fob = FileUtil.createData(tmpFile);
DataObject dob = DataObject.find(fob);
EditorKit kit = CloneableEditorSupport.getEditorKit("text/javascript");
this.scriptEditorPane.setEditorKit(kit);
this.scriptEditorPane.getDocument().putProperty(Document.StreamDescriptionProperty, dob);
答案 4 :(得分:-1)
要获取行号,您可以使用以下代码段:
BaseTextUI eui = new BaseTextUI();
eui.installUI(editor);
panel.add(eui.getEditorUI().getExtComponent());