JEditorPane и пользовательский редактор - PullRequest
1 голос
/ 23 сентября 2011

У меня тривиальный вопрос.Мне нужно загрузить существующий файл в JEditorPane с помощью специального редактора.У меня есть набор для редактирования, файл с некоторым расширением, и мне нужно заставить JEditorPane распознать мой файл и использовать мой набор для редактирования.Я нашел только, это возможно, но нигде как.

Комплект основан на HTML и файле тоже.Если файл имеет расширение .html, он работает, но когда я переименовываю файл в .xhtbm, он открывается как обычный текст.Тип содержимого установлен на text/plain, но я не могу зарегистрировать свой комплект редактора для этого типа, потому что уже зарегистрирован другой набор редактора для этого типа контента.Можно ли связать какой-либо набор редактора с каким-либо типом файла?

Ответы [ 3 ]

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

Установите свой EditorKit и используйте метод read () набора, передавая туда файл.

Читатель, используемый в методе read, должен понимать, как анализировать содержимое.

0 голосов
/ 05 ноября 2017

Вы могли бы:

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

перед вашим:

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

Извините за поздний ответ!

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

Большое спасибо, Станислав. В его примере (см. последняя страница статьи , метод 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") и все идет без трения.

...