在这种情况下,JTextPane的适当事件侦听器是什么?

时间:2011-09-28 07:20:02

标签: java swing jtextpane

我有一个显示HTML文本的JTextPane。 HTML文本包含带标签的超链接......

当用户点击JTextPane上显示的html文本中的链接时,我想调用java函数。

我怎样才能做到这一点?如果需要实现事件监听器?如果是,那么要处理的事件监听器是什么?

1 个答案:

答案 0 :(得分:4)

您正在寻找的侦听器类型是HyperlinkListener,一些代码片段:

    final JTextPane pane = new JTextPane();
    pane.setEditable(false);
    pane.setContentType("text/html");
    pane.setPage("http://swingx.java.net");
    ToolTipManager.sharedInstance().registerComponent(pane);

    HyperlinkListener l = new HyperlinkListener() {
        @Override
        public void hyperlinkUpdate(HyperlinkEvent e) {
            if (HyperlinkEvent.EventType.ACTIVATED == e.getEventType()) {
                try {
                    pane.setPage(e.getURL());
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }

        }

    };
    pane.addHyperlinkListener(l);