Swing Text -> HTML: Caret-Koordinaten verschoben

Status
Nicht offen für weitere Antworten.
Hallo,

ich habe Texte in einem von mir geschriebenen Objektcontainer, die ich mit einer JEditorPane anzeigen lasse. Die Texte sind darin nicht editierbar. Ich nutze ein HTMLEditorKit, damit der Nutzer Textstellen markieren und per Kontextmenü farbig formatieren kann. Die Koordinaten dieser Markierungen speichere ich separat für jeden Text ab, weil vom Benutzer an anderer Stelle noch Textinformationen zu der jeweiligen Markierung festgehalten werden sollen. Es ist also wichtig, dass ich die Koordinaten der Textstellen korrekt auslesen kann.

Mein Problem bei der Sache: Wenn in Texten z.B. zwei Leerzeichen oder zwei Zeilenumbrüche aufeinanderfolgen, wird das vom HTMLEditorKit (bzw. vom View?) als ein einzelnes Leerzeichen behandelt. Das allein ist nicht so schlimm, denn ich habe eine Methode geschrieben, die einfach per regex die doppelten Whitespaces auf jeweils eins reduziert, bevor der Text in meinen Objektcontainer übernommen wird. Dabei muss ich aber irgendwelche ähnlich gelagerten Fälle übersehen, denn hin und wieder sind die Markierungen um ein oder zwei oder drei Zeichen nach hinten verschoben, wenn ich die Datei wieder öffne und die Markierungen an den gespeicherten Textstellen neu zeichnen lasse.

Meine Frage lautet daher: Gibt es irgendeine einfache Methode, um einen Text so zu transformieren, dass er seiner HTML-Darstellung (also nur einfache Leerzeichen usw.) genau gleicht? Falls nicht, hat vielleicht jemand Hinweise, was für Kleinigkeiten ich außer Leerzeichen und Zeilenumbrüchen übersehen haben könnte? Danke!
 

MrWhy

Aktives Mitglied
Hi,

also mal schauen ob ich dir folgen konnte.

Du hast einen Text den du mit einem HTMLEditorToolkit bearbeitest, speicherst dir aber zusätzlich nochmal die Stellen, an dem der Text bearbeitet wurde, um ihn später wieder so anzeigen zu lassen?!.

Warum liest du denn deinen JEditorPane nicht einfach aus? Dort sind doch die HTML formatiereungen dann gegeben, und wenn du dann den Inhalt wieder zurück schreibst, ist es wieder wie vorher.

Deswegen zeichnest du es doch mit HTML aus, oder nicht?!

Grüße

Mr.
 
Naja, ich baue ein Programm für qualitative Datenanalyse, d.h. es kommt nicht so sehr auf die Formatierung an, sondern vor allem darauf, dass der Benutzer jede dieser Textstellen mit Zusatzinformationen versehen kann. Beim Klick auf eine markierte Stelle öffnet sich ein Popup-Fenster, in dem man mehrere Stichworte eingeben kann.

Wenn ich die ganzen Texte abspeichere, dann schreibe ich sie mit JDOM in eine XML-Datei. Daher sollen die Formatierungen selbst nicht gespeichert werden, sondern nur die Zusatzinformationen mit ihren Koordinaten. Erstens müsste ich JDOM dann sagen, dass er die Formatierungen auch alle einzeln parsen soll, und zweitens benötige ich den einfachen, unformatierten Text in der XML-Datei zwecks Interoperabilität mit anderen Programmen. Drittens gibt es überlappende Textstellen. Im HTML-Text würden zwei überlappende Stellen ja zu einer verschmolzen, weil man Tags ja nicht wie folgt schachteln kann:
Code:
<b>text<b>test</b></b>

Ich würde daher gern die Koordinaten separat speichern. Die Formatierung im Text selbst dient nur dazu, dass der geneigte Nutzer seine Kommentare im Text auch visuell wiederfindet und sie zur Bearbeitung per Mausklick anzeigen lassen kann.
 

MrWhy

Aktives Mitglied
Hi,

hast du denn die Whitespaces in deinem Quelltext mit &nbsp; gekennzeichnet, bzw. die Linebreaks mit <br /> ?

Gruß

Mr.
 
Wenn ich einen Text aus meinem Container auslese und in die JEditorPane lade, ersetze ich vorher die Linebreaks mit <br/> und dann (hoffentlich alle relevanten) Whitespaces mit dem regulären Ausdruck "[ \\t\\x0B\\f]+" in " " (also einfaches Leerzeichen). Warum sollte es nötig sein, einfache Leerzeichen noch durch &nbsp; zu ersetzen?
 

MrWhy

Aktives Mitglied
Hi,

naja um zu überprüfen, ob du wirklich alles erwischt hast, könntest du mal probeweise die Whitespaces durch ihr HTMLpendant austauschen. Dann siehst du auch besser wo die Whitespaces dazukommen, denn ein &nbsp; findet man schneller als " ".

Grüße

Mr.
 
OK, danke, werde ich in den nächsten Tagen mal ausprobieren. Ich hatte gehofft, dass es irgendwo eine bereits existierende Methode gäbe, um Text "html-ready" zu machen. Aber dann bin ich scheinbar immerhin nicht ganz auf dem Holzweg gewesen bisher.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Swing HTML Text aus JLabel ohne "HTML-Tags" in String einlesen AWT, Swing, JavaFX & SWT 5
G Swing JCheckBox, setEnabled(false) und HTML Text Problem AWT, Swing, JavaFX & SWT 5
C Swing JTextPane zeigt HTML-Text aus Variable nicht an :( AWT, Swing, JavaFX & SWT 3
S Swing HTML-Text in JEditorPane einfärben AWT, Swing, JavaFX & SWT 5
H Mit JLabel HTML - formatierten Text anzeigen AWT, Swing, JavaFX & SWT 14
E Swing JTextPane Inhalt(Text und Bilder) als HTML text bekommen AWT, Swing, JavaFX & SWT 3
B JEditorPane - Text und Graphik in HTML speichern AWT, Swing, JavaFX & SWT 4
S JEditorPane soll HTML und dann Text anzeigen..? AWT, Swing, JavaFX & SWT 5
W HTML-Text mit relativer URL in JEditorPane einlesen AWT, Swing, JavaFX & SWT 10
S drawString für HTML-Text? AWT, Swing, JavaFX & SWT 7
F HTML Text irgendwie auf BufferedImage bringen AWT, Swing, JavaFX & SWT 3
Noar Infofenster zentrieren und HTML-formatierten Text readonly a AWT, Swing, JavaFX & SWT 7
MasterEvil HTML formatierten Text mit drawString ? AWT, Swing, JavaFX & SWT 3
T DataFlavor für HTML-formatierten Text im JEditorPane AWT, Swing, JavaFX & SWT 8
S JEditorPane HTML-Text auslesen AWT, Swing, JavaFX & SWT 2
K HTML-Text in einem Label anzeigen AWT, Swing, JavaFX & SWT 8
Z JTextPane (text/html): Schrift festlegen AWT, Swing, JavaFX & SWT 5
P JTextfield Text durch Keylistener verändern AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
C JToggleButton disabled Text Color AWT, Swing, JavaFX & SWT 11
H JavaFX Label.Text mit bind an DoubleProperty binden AWT, Swing, JavaFX & SWT 3
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
FrittenFritze Text in Flying Saucer selectierbar machen AWT, Swing, JavaFX & SWT 0
Mojo7310 Ändern von Text in JLabel mit einem Button AWT, Swing, JavaFX & SWT 11
raeuchertofu Text von JTextfield und JLabel ändern AWT, Swing, JavaFX & SWT 2
H JavaFX Gedrehter Text auf Canvas (Positionierung) AWT, Swing, JavaFX & SWT 6
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
I Rich Text drucken AWT, Swing, JavaFX & SWT 0
B Text mit Absatz + OK-Button, der Fenster wieder schließt AWT, Swing, JavaFX & SWT 7
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
sascha-sphw JavaFX ListCell höhe verändert sich beim ändern der Text-Farbe AWT, Swing, JavaFX & SWT 14
N In Textdatei Text anfügen per GUI AWT, Swing, JavaFX & SWT 3
N Textdatei GUI, Text in Textarea anzeigen mehrere Zeilen AWT, Swing, JavaFX & SWT 1
R Swing JTextField nicht-kopierbarer Text AWT, Swing, JavaFX & SWT 1
S Text-Info in der Taskbar anzeigen AWT, Swing, JavaFX & SWT 15
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing JLabel Text mit der Zeit ändern AWT, Swing, JavaFX & SWT 1
Hatsi09 JButton text layout AWT, Swing, JavaFX & SWT 9
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
ralfb1105 JavaFX Wie Text Label in neuem Window von Main Stage setzen? AWT, Swing, JavaFX & SWT 6
CptK Swing Button: ImageIcon unter den Text AWT, Swing, JavaFX & SWT 4
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX Anderer Text, wenn kein Platz ist. AWT, Swing, JavaFX & SWT 1
K JavaFX TextInputDialog Button Text ändern AWT, Swing, JavaFX & SWT 1
S 2D-Grafik affine Transformation für Text-Shape AWT, Swing, JavaFX & SWT 0
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Text in ein Textfeld eingeben und speichern AWT, Swing, JavaFX & SWT 27
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
C Swing Spinner als TableCellEditor - Text zu klein AWT, Swing, JavaFX & SWT 2
H JavaFX - Button und Text - Falsche Darstellung AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
I JavaFX formatierter Text in PDF speichern AWT, Swing, JavaFX & SWT 4
T JavaFX Text des ProgressIndicators ändern AWT, Swing, JavaFX & SWT 2
E Swing Text verschwindet AWT, Swing, JavaFX & SWT 1
G JavaFX - Während AudioRecording keine Text eingabe TextField möglich AWT, Swing, JavaFX & SWT 6
G Rectangle Breite richtet such an die Breite vom Text AWT, Swing, JavaFX & SWT 1
Sanni94 JavaFX Kann man eine Grafik in einen Text einbinden? AWT, Swing, JavaFX & SWT 2
S JTextArea Text nach oben wandern lassen AWT, Swing, JavaFX & SWT 7
F Icons neben Text in Listview setzen AWT, Swing, JavaFX & SWT 2
K Rich Text FX von TomasMikula AWT, Swing, JavaFX & SWT 0
M Text in einem Label fett setzen AWT, Swing, JavaFX & SWT 4
S JAVAFX HTMLEditor wrap text AWT, Swing, JavaFX & SWT 1
J JavaFX Translation Text/Label AWT, Swing, JavaFX & SWT 2
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
A JavaFX HTMLEditor in Text umwandeln AWT, Swing, JavaFX & SWT 2
M Swing jButton Text verschwindet AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
2 JLabel - setText ändert den Text nicht AWT, Swing, JavaFX & SWT 4
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta JLabel anzuzeigenden Text zentrieren AWT, Swing, JavaFX & SWT 9
javampir Java FX Text verschwindet nicht AWT, Swing, JavaFX & SWT 9
Tausendsassa Text changed event handler jTextField AWT, Swing, JavaFX & SWT 3
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
E To get a color text on the TextArea AWT, Swing, JavaFX & SWT 4
E To get color text on the TextArea AWT, Swing, JavaFX & SWT 5
M Swing JTextPane, Bilder und Text-flow AWT, Swing, JavaFX & SWT 2
Z AWT JLabel setzt kein neuen Text AWT, Swing, JavaFX & SWT 6
D Event Handling Aus einer anderen Klasse heraus einen Text des JLabels ändern. AWT, Swing, JavaFX & SWT 12
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
S JLabel-Text in Methode setzen? AWT, Swing, JavaFX & SWT 2
F JPanel "zeichnet" keinen Text AWT, Swing, JavaFX & SWT 14
U WYSIWYG Text-Editor für JFrames AWT, Swing, JavaFX & SWT 8
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
T MausClick soll TExt ändern AWT, Swing, JavaFX & SWT 6
J Text bei Eingabe löschen AWT, Swing, JavaFX & SWT 5
A SWT Auto completion in text box AWT, Swing, JavaFX & SWT 5
C Geloest: JTextfield: Titel automatisch entfernen, sobald Text eingegeben wird AWT, Swing, JavaFX & SWT 1
I Text zur Linie zeichnen AWT, Swing, JavaFX & SWT 1
J JavaFX JavaFX Probleme bei der Anzeige von Text AWT, Swing, JavaFX & SWT 18
X AWT Text der mit Graphics "drawString(...)" geschreiben wurde wieder löschen. AWT, Swing, JavaFX & SWT 6
O Swing Text aus Textfield auslesen AWT, Swing, JavaFX & SWT 8
B Text auf Display ausgeben [LWJGL] AWT, Swing, JavaFX & SWT 2
G Text im textfeld in einem Editor anzeigen AWT, Swing, JavaFX & SWT 18
S TextArea get Selected row(Text) AWT, Swing, JavaFX & SWT 6
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben