2

我有以下代码将 html 添加到 JEditorPane

        JEditorPane  content = new JEditorPane ();

        content.setEditable(false);
        content.setContentType( "text/html" );

        content.setText(resultText);

        JScrollPane bottomScrollPane = new JScrollPane(content);
        bottomScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        bottomScrollPane.setBorder(BorderFactory.createTitledBorder("Swing Rendered"));  

在这一步之后,我已将 JEditorPane 实例“内容”添加到 JPanel 实例中,并且可以完美地看到结果。但是当我尝试单击显示的链接时,它不起作用。

我如何使这些链接可点击,它应该将用户重定向到浏览器中的特定网址?

问候, 巴兰

4

1 回答 1

6

您需要将 HyperlinkListener 添加到 JEditorPane:

pane.addHyperlinkListener(new HyperlinkListener()
{
    public void hyperlinkUpdate(HyperlinkEvent r){
        try{
            if(r.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
            pane.setPage(r.getURL());
        }
        catch(Exception e){
        }
    }
 });

或者您可以在侦听器中执行任何其他操作...例如,在默认浏览器中打开一个链接:

您需要将 HyperlinkListener 添加到 JEditorPane:

pane.addHyperlinkListener(new HyperlinkListener()
{
    public void hyperlinkUpdate(HyperlinkEvent r){
        try{
            if(r.getEventType() == HyperlinkEvent.EventType.ACTIVATED)
            Desktop.getDesktop().browse(new URI(r.getURL().toURI()));
        }
        catch(Exception e){
        }
    }
 });
于 2013-03-14T09:52:49.390 回答