Pregunta

I have a HTML file and I need to display it in JTextPane.

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

This works properly. It uses my modified HTML editor kit and displays special tags as needed. But modified file is not exactly HTML. It should have another extension. But that's a problem.

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

The file has been just renamed and is being displayed as plain text now. Is there some way to force JTextPane to open HTML file with extension XHTBM as HTML file? Am I forced to use HTML extension if using JTextPane?

¿Fue útil?

Solución 2

The solution has been found (see 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);
    }
}

This is the proper technique.

Otros consejos

One alternative is to use a JEditorPane and call JEditorPane.setContentType(String).

See setContentType(String) for details.

..For example if the type is specified as text/html; charset=EUC-JP the content will be loaded using the EditorKit registered for text/html and the Reader provided to the EditorKit to load unicode into the document will use the EUC-JP charset for translating to unicode..

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top