Warum merkst du dir nicht die Textposition und setzt das Carret entsprechend?vegeta hat gesagt.:Position des Scrollbalken also der sicht mir merken können dann
brauch ich das nicht mehr mit dem parsen
vegeta hat gesagt.:der JEditorPane unsterstützt nur eingeschränkt CSS, und darunter fällt der Hover effekt.
public void handleStartTag(HTML.Tag t, MutableAttributeSet a, int pos) {
tagCount++;
if (t==HTML.Tag.A)
{
linkCount++;
ss.append(a.toString().substring(0,4));
this.pos=pos;
}
}
ParserDelegator parser = new ParserDelegator();
parser.parse(br,tagCounter, false);
editorPane.addHyperlinkListener(
new HyperlinkListener() {
private MutableAttributeSet mouseEnteredAttributes = null;
private MutableAttributeSet mouseExitedAttributes = null;
public void hyperlinkUpdate(HyperlinkEvent event) {
Element e = event.getSourceElement();
DefaultStyledDocument doc = (DefaultStyledDocument)e.getDocument();
if(mouseEnteredAttributes == null) {
mouseEnteredAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseEnteredAttributes, Color.red);
mouseExitedAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseExitedAttributes, Color.blue);
}
if(event.getEventType() == HyperlinkEvent.EventType.ENTERED)
doc.setCharacterAttributes(e.getStartOffset(), e.getEndOffset()-e.getStartOffset(), mouseEnteredAttributes, false);
else if(event.getEventType() == HyperlinkEvent.EventType.EXITED)
doc.setCharacterAttributes(e.getStartOffset(), e.getEndOffset()-e.getStartOffset(), mouseExitedAttributes, false);
}
}
);
Ich wollte Dich noch etwas zappeln lassen. Wer weiß vielleicht käme dabei die Weltformel heraus. :bae:vegeta hat gesagt.:Aber Michael du hast dir schön lange Zeit gelassen mit deiner Antwort![]()
Wie meinst Du es? Mit Text-API?vegeta hat gesagt.:Was hast du in dem Bereich gemacht?
Barbyque? :wink: (oder wie auch immer man es schreibt)vegeta hat gesagt.:yo also ich weis schon mal was ich am wochende mache.
Wenn im Dokument nicht anders angegeben, werden die Default-Styles aus rt.jar verwendet (siehe rt.jar unter \javax\swing\text\html\default.css). Du kannst eigene Stylesheets verwenden. Siehe HTMLEditorKit.setStyleSheet(StyleSheet s) bzw. HTMLEditorKit.getStyleSheet()vegeta hat gesagt.:noch etwas standard mäßig werden links blau angzeigt. gibt es eine möglich keit dies zu änderen?
ich hab es mit dem Font Tag versucht, aber hierdurch funktioniert das Highlighting nicht mehr. Aber die Links werden schwarz angzeigt.
Zeig' ich nich' :bae: War auch nix Spektakuläres.vegeta hat gesagt.:Also ich wollt vorhin nur mal wissen was du schon alles gemacht hast mit den HTML klassen vielleicht gibt es ja etwas zum betrachten
DefaultStyledDocument doc = (DefaultStyledDocument)this.getDocument();
SimpleAttributeSet color = new SimpleAttributeSet();
StyleConstants.setForeground(color, Color.black);
doc.setCharacterAttributes(0,doc.getLength(),color,false);
editorPane.addHyperlinkListener(
new HyperlinkListener() {
private MutableAttributeSet mouseEnteredAttributes = null;
private MutableAttributeSet mouseExitedAttributes = null;
public void hyperlinkUpdate(HyperlinkEvent event) {
Element e = event.getSourceElement();
DefaultStyledDocument doc = (DefaultStyledDocument)e.getDocument();
if(mouseEnteredAttributes == null) {
mouseEnteredAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseEnteredAttributes, Color.red);
mouseExitedAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseExitedAttributes, Color.blue);
}
if(event.getEventType() == HyperlinkEvent.EventType.ENTERED)
doc.setCharacterAttributes(e.getStartOffset(), e.getEndOffset()-e.getStartOffset(), mouseEnteredAttributes, false);
else if(event.getEventType() == HyperlinkEvent.EventType.EXITED)
doc.setCharacterAttributes(e.getStartOffset(), e.getEndOffset()-e.getStartOffset(), mouseExitedAttributes, false);
}
}
);
Element e = ((HTMLFrameHyperlinkEvent) event).getSourceElement();
MutableAttributeSet mouseEnteredAttributes = null;
MutableAttributeSet mouseExitedAttributes = null;
JTextPane editor = (JTextPane) e.getSource();
System.out.println(editor.getText());
HTMLEditorKit kit = (HTMLEditorKit)editor.getEditorKit();
int x=e.getX();
int y=e.getY();
Point pt = new Point(e.getX(), e.getY());
int pos = editor.getUI().viewToModel(editor, pt);
Document doc2 = editor.getDocument();
HTMLDocument hdoc = (HTMLDocument) doc2;
Element el = hdoc.getCharacterElement(pos);
DefaultStyledDocument doc = (DefaultStyledDocument)editor.getDocument();
if(mouseEnteredAttributes == null) {
mouseEnteredAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseEnteredAttributes, Color.red);
mouseExitedAttributes = new SimpleAttributeSet();
StyleConstants.setForeground(mouseExitedAttributes, Color.black);
}
doc.setCharacterAttributes(el.getStartOffset(), el.getEndOffset()-el.getStartOffset(), mouseEnteredAttributes, false);
JEditorPane editor = (JEditorPane) e.getSource();
HTMLDocument hdoc = (HTMLDocument) editor.getDocument();
Element el=hdoc.getElement(e.getDescription());
DefaultStyledDocument doc = (DefaultStyledDocument)editor.getDocument();
doc.setCharacterAttributes(el.getStartOffset(), el.getEndOffset()-el.getStartOffset(), mouseEnteredAttributes, false);
doc.setCharacterAttributes(el.getStartOffset(), el.getEndOffset()-el.getStartOffset(), mouseEnteredAttributes, false);