Abrufen von Rohtext von JTextPane

7

In meiner Anwendung verwende ich JTextPane , um einige Protokollinformationen anzuzeigen. Da ich einige spezielle Zeilen in diesem Text beleuchten möchte (zB die Fehlermeldungen), setze ich contentType auf " text/html ". Auf diese Weise kann ich meinen Text formatieren.

Jetzt erstelle ich einen JButton, der den Inhalt dieses JTextPane in die Zwischenablage kopiert. Dieser Teil ist einfach, aber mein Problem ist, dass wenn ich myTextPane.getText() aufruft, bekomme ich den HTML-Code, wie:

%Vor%

anstatt nur den rohen Inhalt zu erhalten:

%Vor%

Gibt es eine Möglichkeit, nur den Inhalt meiner JTextPane im Klartext zu bekommen? Oder muss ich den HTML-Code selbst in Rohtext umwandeln?

    
romaintaz 07.12.2009, 12:27
quelle

4 Antworten

5

Basierend auf der akzeptierten Antwort auf: Entfernen von HTML aus einer Java-Zeichenfolge

%Vor%

Leicht modifizierte Version der Klasse Html2Text , die in der Antwort gefunden wurde, mit der ich verlinkt bin

%Vor%

Wenn Sie eine feinkörnigere Handhabung benötigen, sollten Sie mehr von der Schnittstelle implementieren, die von HTMLEditorKit.ParserCallback

    
jitter 07.12.2009, 13:27
quelle
16

Sie müssen den ParserCallback nicht verwenden. Verwenden Sie einfach:

%Vor%     
camickr 07.12.2009 16:59
quelle
2

Sie müssen es leider selbst tun. Stellen Sie sich vor, wenn einige der Inhalte HTML-spezifisch wären, zB Bilder - die Textdarstellung ist unklar. Enthalten Sie alternativ Text oder nicht zum Beispiel.

    
Nick Fortescue 07.12.2009 12:33
quelle
2

(Ist RegExp zulässig? Dies wird nicht analysiert, oder?)

Nehmen Sie das Ergebnis getText () und verwenden Sie String.replaceAll (), um alle Tags zu filtern. Als trim (), um führende und nachfolgende Leerzeichen zu entfernen. Für die Whitespaces zwischen deinem ersten und letzten "Blabla" sehe ich keine allgemeine Lösung. Vielleicht kannst du den Rest um CRLF verschütten und alle Strings wieder trimmen.

(Ich bin kein Regexp-Experte - vielleicht kann jemand die Regexp bereitstellen und sich etwas Ansehen verdienen;))

Bearbeiten

.. Ich habe nur angenommen, dass du < und > nicht in deinem Text verwendest - sonst ... es ist eine Herausforderung.

    
Andreas_D 07.12.2009 12:36
quelle

Tags und Links