Как открыть файл HTML с другим расширением в JTextPane - PullRequest
1 голос
/ 23 сентября 2011

У меня есть файл 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? Я вынужден использовать расширение HTML при использовании JTextPane?

Ответы [ 2 ]

4 голосов
/ 23 сентября 2011

Одной из альтернатив является использование JEditorPane и вызов JEditorPane.setContentType(String).

Подробнее см. setContentType (String) .

.. ДляНапример, если тип указан как text/html; charset=EUC-JP, содержимое будет загружено с использованием EditorKit, зарегистрированного для text/html, и Reader, предоставленный EditorKit для загрузки Unicode в документ, будет использовать кодировку EUC-JP для перевода в Unicode ..

0 голосов
/ 27 сентября 2011

Решение найдено (см. сообщение JEditorPane и набор пользовательских редакторов ):

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

Это правильная техника.

...