Hi,
ich habe in nem JEditorPane einen html Text über mehrere Seiten drin stehen.
Jetzt möchte ich quasi Verlinkungen rein bringen, und zwar manuell. Mit den üblichen Methoden geht es in meinem Fall nicht, da ich die html Seite in meinem Programm veränder und nicht speicher, aber dennoch einen bestimmten Punkt anspringen möchte.
Das heißt, ich klicke ein Wort an, welches auch als Hyperlink gekennzeichnet ist und hole mir das im HyperlinkListener...das ich dann also sowas rauskriege: #test
Danach will ich zu der Zeile hinspringen im EditorPane, wo dann: name="test" steht...
ich dachte mir ich realisier das mit editorPane.select(selectionStart, selectionEnd)
aber ich rechne mir irgendwie nciht die richtigen werte dafür aus....wo ist mein denkfehler?
ich habe in nem JEditorPane einen html Text über mehrere Seiten drin stehen.
Jetzt möchte ich quasi Verlinkungen rein bringen, und zwar manuell. Mit den üblichen Methoden geht es in meinem Fall nicht, da ich die html Seite in meinem Programm veränder und nicht speicher, aber dennoch einen bestimmten Punkt anspringen möchte.
Das heißt, ich klicke ein Wort an, welches auch als Hyperlink gekennzeichnet ist und hole mir das im HyperlinkListener...das ich dann also sowas rauskriege: #test
Danach will ich zu der Zeile hinspringen im EditorPane, wo dann: name="test" steht...
ich dachte mir ich realisier das mit editorPane.select(selectionStart, selectionEnd)
aber ich rechne mir irgendwie nciht die richtigen werte dafür aus....wo ist mein denkfehler?
Java:
printableEditorPane.addHyperlinkListener(new HyperlinkListener() {
public void hyperlinkUpdate(HyperlinkEvent event) {
if(event.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
String url = event.getURL().toString();
String substring = url.substring(url.indexOf("#") + 1);
int selectionStart = printableEditorPane.getText().indexOf("name=\"".concat(substring).concat("\""));
printableEditorPane.select(selectionStart, printableEditorPane.getSelectionEnd());
}
}
});
Zuletzt bearbeitet: