如何使用NetBeans平台的语法高亮与JEditorPane中

 我来答
就烦条0o
2016-07-03 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46493
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
1.这是怎么回事:
String mimeType = "text/x-java"; // NOI18N
JEditorPane editorPane = new JEditorPane();
editorPane.setEditorKit(MimeLookup.getLookup(mimeType).lookup(EditorKit.class));

2.
喂,
我发现类似的缺乏,如果你想要做一个独立平台的应用程序,这里到底是怎么做的,我自己的应用程序,是的,它可能会被重新发明轮子..但因为我无法找到该轮在首位 CodeGo.net,还不如建立一个..
我带着对此处创建一个Java编辑器工具包:

建有小封装提供必要的文件和模块之一的,把它放到我的平台的应用程序。您将需要tools.jar文件,所有这些扫描器位隐藏,它生活在JDK安装在/ 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的扫描仪,当然这个例子中,你可以得到玩的语法和标记,并与自己的规则,我认为有上所有的东西教程..
希望这有助于一点。
3.
部分答案:
显然,下面将启用语法高亮的Java(和但它似乎并不适用于其他语言(除的Java.xML),即使它应该[1]。我也找不到什么办法让行号(已启用,但他们不露面)!
yourEditor.setContentType("text/x-java");
yourEditor.putClientProperty("HighlightsLayerIncludes", "^org\\.netbeans\\.modules\\.editor\\.lib2\\.highlighting\\.SyntaxHighlighting$");

如果决定帮助这个问题,一个更加统一的例子包括行号等性能良好。当然,它不应该是什么?!?
[1]
4.
下面应该给你的语法高亮的JavaScript。查找其他类型不同的语法。
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);

5.
为了得到行号,你下面的代码片段:
BaseTextUI eui = new BaseTextUI();
eui.installUI(editor);
panel.add(eui.getEditorUI().getExtComponent());
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式