如何在JTextPane中打开具有另一个扩展名的HTML文件

时间:2011-09-23 07:38:15

标签: java swing htmleditorkit

我有一个HTML文件,我需要在JTextPane中显示它。

editor.setPage("file:///" + new File("test-resources/test.html").getAbsoluteFile());

这很正常。它使用我修改过的HTML编辑器套件,并根据需要显示特殊标签。但修改后的文件并不完全是HTML。它应该有另一个扩展。但这是一个问题。

editor.setPage("file:///" + new File("test-resources/test.xhtbm").getAbsoluteFile());

该文件刚刚重命名,现在显示为纯文本。有没有办法强制JTextPane打开HTML文件,扩展名为XHTBM作为HTML文件?如果使用JTextPane

,我是否被迫使用HTML扩展程序

2 个答案:

答案 0 :(得分:4)

另一种方法是使用JEditorPane并致电JEditorPane.setContentType(String)

有关详细信息,请参阅setContentType(String)

  

..例如,如果类型指定为text/html; charset=EUC-JP,则将使用为text/html注册的EditorKit加载内容,并且提供给EditorKit的Reader将unicode加载到文档中将使用{转换为unicode的{1}} charset ..

答案 1 :(得分:0)

已找到解决方案(请参阅the post JEditorPane and custom editor kit):

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);
    }
}

这是正确的技术。