java – 如何在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("stem.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("

显示一个可点击的链接,当我在构造函数中使用setText()方法时,但是当我尝试使用append()显示其他链接方法显示html标签以及文本,它不会使我的网址成为超链接.任何想法,为什么它不兼容追加?

最佳答案
使用HTMLEditorKit的任一方法

public void insertHTML(HTMLDocument doc,int offset,String html,int popDepth,int pushDepth,HTML.Tag insertTag) 

或者HTMLDocument的方法

public void insertAfterEnd(Element elem,String htmlText)
public void insertAfterStart(Element elem,String htmlText)
public void insertBeforeStart(Element elem,String htmlText
public void insertBeforeEnd(Element elem,String htmlText)

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...