"FileListener" für JEditorPane gesucht

C:\irgendwas.txt → file://c:/irgendwas.txt

\Freigabe\Verzeichnis\Datei.txt → file://freigabe/Verzeichnis/Datei.txt (oder eben 2 Slashes mehr, wenn man meint, dass die zu „file:“ gehören und danach erst der Pfad losgeht.

Ich hab es jetzt mit zweien gelöst.

Wen die Lösung interessiert: Das JEditorPane machte mitnichten “automagisch” das, was es in meiner Anwendung tat. Ich hatte dafür eine kleine Methode

     * Setzt in einem Text Links in HTML-Links um.
     *
     * @param text
     *            Zu bearbeitender Text.
     * @return umgesetzter Text
     */
    public String textToHtmlConvertingURLsToLinks(String text) {
        if (text == null) {
            return text;
        }

        return text.replaceAll("(\\A|\\s)"
                + "((?:http|https|ftp|mailto):\\S+[^.,!?]|www\\.\\S+\\.[a-z]{2,3})"
                + "(\\s|\\z|\\.|,|\\!|\\?)",
                "$1<a href=\"$2\">$2</a>$3");
    }

geschrieben, die auf dem eingefügten Text angewendet. Und halt einen HyperlinkListener, der auf die angezeigten Links reagiert. Nun habe ich noch eine zweite Methode

            "(.*(?:\\A|\\s))"                // davor: neue Zeile oder Leerzeichen
            + "("
            + "(?:file\\:)?"                 // optional file: davor
            + "(?:[A-Za-z]\\:[/\\\\]|"       // C:\ oder c:/ oder
            + "[/\\\\]{2})"                  // \\ oder //
            + ".+?\\.[a-zA-Z]{3,4}"          //  sonstiges bis zu einer Endung
            + ")"
            + "((:\\s|\\z|\\.|,|\\!|\\?).*)" // dahinter Leer oder Satzzeichen
                                             // oder Zeilenende
            );
    /**
     * Setzt in einem Text Links in HTML-Links um.
     *
     * @param text
     *            Zu bearbeitender Text.
     * @return umgesetzter Text
     */
    public String textToHtmlConvertingFilesToLinks(String text) {
        if (text == null || text.isEmpty()) {
            return text;
        }

        Matcher matcher = FILE_PATTERN.matcher(text);
        while (matcher.find()) {
            String front = matcher.group(1);
            String file  = matcher.group(2);
            String back  = matcher.group(3);
            String fileSlashes = rightSlashes(file);
            text = front
                    + "<a href=\"file:"
                    + (fileSlashes.startsWith("//") ? "" : "//")
                    + fileSlashes
                    + "\">"
                    + file
                    + "</a>"
                    + back;
            matcher = FILE_PATTERN.matcher(text);
        }
        return text;
    }

geschrieben und den Listener angepasst (reagiert auf file:… anders als auf den Rest) und nun passt es. Die JEditorPane an sich habe ich also nicht angefasst, die Hinweise hier im Thread waren zielführend, was mir klar wurde, als ich über meine eigene Methode stolperte.