Theodor Keinstein
Theodor Keinstein

Reputation: 1643

JEditorPane and custom editor kit

I've a trivial question. I need to load an existing file into JEditorPane using custom editor kit. I've a editor kit, a file with some extension and I need to force the JEditorPane to recognize my file and use my editor kit. I've found only, that's possibile, but nowhere how.

The kit is based on HTML and the file too. If file has the .html extension, it works, but when I rename the file to .xhtbm, it is opened as plain text. The content type is set to text/plain, but I'm unable to register my editor kit for this type, because there is already registered another editor kit for this content type.

Actually the question is: Is really possible to associate some editor kit with some file type?

Upvotes: 1

Views: 3477

Answers (3)

Ananay Gupta
Ananay Gupta

Reputation: 385

You Could:

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

before your:

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

Sorry for the Late Response!

Upvotes: 0

Theodor Keinstein
Theodor Keinstein

Reputation: 1643

Thanks a lot Stanislav. In his example (see the last page of article, method initEditor()) I found the proper way. The mistake was in the order of commands. That works:

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

Then I call openFile("test.xhtbm") and all goes without friction.

Upvotes: 0

StanislavL
StanislavL

Reputation: 57421

Set your EditorKit and user the kit's read() method passing the file there.

The reader used in the read method should understand how to parse the content.

Upvotes: 2

Related Questions