JEdi​​torPane和自定义编辑器套件

时间:2011-09-23 09:27:41

标签: java swing jeditorpane

我有一个小问题。我需要使用自定义编辑器工具包将现有文件加载到JEditorPane。 我有一个编辑器工具包,一个带有扩展名的文件,我需要强制JEditorPane识别我的文件并使用我的编辑器工具包。我发现只有,这是可能的,但无处可去。

该套件也基于HTML和文件。如果文件具有.html扩展名,则它可以正常工作,但是当我将文件重命名为.xhtbm时,它将以纯文本形式打开。内容类型设置为text/plain,但我无法为此类型注册我的编辑器工具包,因为已经为此内容类型注册了另一个编辑器工具包。

实际上问题是:是否真的可以将某些编辑器工具包与某种文件类型相关联?

3 个答案:

答案 0 :(得分:2)

设置您的EditorKit并使用工具包的read()方法将文件传递给那里。

read方法中使用的阅读器应该理解如何解析内容。

答案 1 :(得分:0)

非常感谢斯坦尼斯拉夫。在他的例子中(见the last page of article,方法initEditor()),我找到了正确的方法。错误是命令的顺序。这有效:

public void openFile(String fileName) throws IOException {
    editor.setEditorKit(new ModifiedHTMLEditorKit());
    ModifiedHTMLDocument doc = (ModifiedHTMLDocument)editor.getDocument();
    try {
        editor.getEditorKit().read(new FileReader(fileName), doc, 0);
    }
    catch (BadLocationException b) {
        throw new IOException("Could not fill data into editor.", b);
    }
}

然后我打电话给openFile("test.xhtbm"),一切都没有摩擦。

答案 2 :(得分:0)

你可以:

static{
    // register EditorKit for plaintext content
    JEditorPane.registerEditorKitForContentType( "text/plain", "HtmlEditorKit" );
}

之前:

public static void main(String[] args){...}

对于迟到的回应感到抱歉!