我的应用程序中有一个JEditorPane,我使用jsyntaxpane和以下代码将java文件加载到它中,并且它运行良好:
突出显示
jsyntaxpane.DefaultSyntaxKit.initKit();
textarea.setContentType("text/java");
在
中加载文件int a = filesToCompileList.getSelectedIndex();
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
textarea.read.read(br, index);
br.close();
textarea.requestFocus();
但知道我必须改变我加载文件的方式,我目前正在加载文件
File file = new File(filePath);
textarea.setPage(file.toURI().toURL());
这是以我想要的方式加载文件,但不再突出显示java文件的文本了!有谁知道我如何解决这个问题或者让java以不同的方式突出显示?
答案 0 :(得分:0)
AFAIK,如果您没有实现自己的jeditorpane版本,则无法完成。来自javadoc
setPage方法可用于从URL初始化组件。 在这种情况下,将根据URL确定内容类型 将设置该内容类型的已注册EditorKit。
因此,内容的mime类型将继承自url的mime类型。稍后调用 setContentyType 将无效,因为这将更改jeditorpane的模型,清理内容。再次来自Javadoc
注意:这有改变模型的副作用,因为 EditorKit是特定类型内容的来源 建模。此方法将导致代表调用setDocument 调用者以确保内部状态的完整性。
所以你必须继续使用read方法。