как отобразить кликабельные ссылки в JEditorPane

Я пытаюсь отобразить список кликабельных ссылок в JEditorPane. Вот мой код:

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.event.HyperlinkEvent;
import javax.swing.event.HyperlinkListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
import javax.swing.text.Style;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;


public class GUI extends JFrame{
    JEditorPane editorpane=new JEditorPane();
    //this is the constructor
    GUI(){
        JFrame frame=new JFrame("Frame");

        frame.add(editorpane);
        JScrollPane scroll=new JScrollPane(editorpane);

        editorpane.setContentType("text/html");
        editorpane.setEditable(false);
        editorpane.setText("<html><body>Test <a href='http://www.java.net'>"
+ "www.java.net</a></body></html>");
        StyleSheet css = ((HTMLEditorKit)
        editorpane.getEditorKit()).getStyleSheet();
        Style style = css.getStyle("body");
        editorpane.addHyperlinkListener(new HyperlinkListener() {
        public void hyperlinkUpdate(HyperlinkEvent e) {
        if (e.getEventType() ==
        HyperlinkEvent.EventType.ACTIVATED) {
        System.out.println("Open browser: " + e.getURL());
        }
        }
        });
        frame.setSize(512, 342);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(scroll);
        frame.show();
    }
    public void append(String s) {
    try{
        Document doc = editorpane.getDocument();
        doc.insertString(doc.getLength(), "\n", null);
        doc.insertString(doc.getLength(), s, null);

    }
    catch(BadLocationException exc){
    }
    }
    //main method
    public static void main(String args[]){

    GUI gui=new GUI();
    gui.append("<html><body>Test <a href='http://www.java.net'>"
+ "www.java.net</a></body></html>");


    }
}

Он показывает интерактивную ссылку, когда я использовал метод setText ()в конструкторе, но затем, когда я попытался отобразить дополнительную ссылку с помощью append (); Метод показывает HTML-теги вместе с текстом и не делает мой URL-адрес гиперссылкой. Любые идеи, почему это не работает с добавлением?

5
задан Andrew Thompson 8 May 2012 в 09:28
поделиться