JEditorPane an bestimmte Stelle springen

Rainbow

Bekanntes Mitglied
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?

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:

Rainbow

Bekanntes Mitglied
ok also es gibt ne bessere methode für meine zwecke anstatt select
Java:
printableEditorPane.setCaretPosition(selectionStart);

aber das problem das er nciht an die richtige stelle springt bleibt
 

Rainbow

Bekanntes Mitglied
ist das vielleicht nicht die richige Position, weil setCaretPosition an die Position des Ankers in dem html text geht und nciht danach wie es im JEditorPane steht?

gibt es denn sonst keine Möglichkeit diese Anker manuell zu machen????
 

Ähnliche Java Themen

Neue Themen


Oben