Hallo alle zusammen,
vielleicht kann du mir helfen.
Also ich baue mir eine Html seite auf und gebe sie aus, auf die Links kann ich reagieren aber wenn ich die aktuelle Farbe des Links oder die Farbe verändern möchte scheitere ich
Hier mal mein code vielleicht ist ja der Fehler oder die Lösung ganz einfach
ich habe die kommentare drinne gelassen hoffe das verwirrt jetzt nicht
vielen dank
[/code]
vielleicht kann du mir helfen.
Also ich baue mir eine Html seite auf und gebe sie aus, auf die Links kann ich reagieren aber wenn ich die aktuelle Farbe des Links oder die Farbe verändern möchte scheitere ich
Hier mal mein code vielleicht ist ja der Fehler oder die Lösung ganz einfach
ich habe die kommentare drinne gelassen hoffe das verwirrt jetzt nicht
vielen dank
Code:
//Datei: JEditorPaneEx.java
import java.net.MalformedURLException;
import java.net.URL;
import javax.swing.*;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
public class start extends JFrame implements HyperlinkListener
{
JEditorPane editor = new JEditorPane();
public start()
{
super ("JEditorPane-Beispiel");
editor.setContentType("text/html");
editor.setEditable(false);
editor.addHyperlinkListener(this);
// EditorPane erzeugen
HTMLEditorKit kit = new HTMLEditorKit();
StyleSheet ss=getStyleSheet(kit);
HTMLDocument myDoc=(HTMLDocument) (kit.createDefaultDocument());
editor.setDocument(myDoc);
//ss.addRule("A:link {color: red}");
//ss.addRule("A:visited { color:red } A:link {color:yellow} A:active {color:blue}");
//kit.setStyleSheet( ss );
//editor.setEditorKit(kit);
// EditorPane auf HTML bzw. Text setzen
// EditorPane auf nicht editierbar setzen
StringBuffer screen= new StringBuffer();
screen.append("<html><body>");
//screen.append("<style type=\"text/css\">a:link { font-weight:bold; color:#0000E0; text-decoration:none }");
//screen.append("</style>");
screen.append("hallo
");
screen.append("<A href=\"http://www.web.de\">ein link</A>" + "
");
// screen.append("<a href=\"http://www.web.de\"> ein link" + "</a>");
screen.append("</body></html>");
// Text in EditorPane einfügen
editor.setText (screen.toString());
getContentPane().add(editor);
setSize (300, 200);
}
private StyleSheet getStyleSheet(HTMLEditorKit HEKit)
{
StyleSheet myStyle= new StyleSheet();
myStyle.addStyleSheet(HEKit.getStyleSheet());
HEKit.setStyleSheet(myStyle);
myStyle.addRule("A:visited { color:red } A:link {color:red} A:active {color:red}");
return(myStyle);
}
public void hyperlinkUpdate(HyperlinkEvent e) {
// TODO Auto-generated method stub
if(e.getEventType()==HyperlinkEvent.EventType.ACTIVATED) {
try { // URL-Konstruktion immer mit try-catch abgsichern
editor.setPage(e.getURL()); // hiermit wird der browser navigiert
}// End try
catch (Exception e1) {
System.out.println("Abbruch --> wrong URL: " + e.toString());
}
}
}
public static void main (String[] args)
{
start editorEx = new start();
editorEx.show();
}
}
[/code]