Каков соответствующий приемник событий для JTextPane в этом сценарии? - PullRequest
1 голос
/ 28 сентября 2011

У меня есть JTextPane, который отображает текст HTML. HTML-текст содержит гиперссылки с тегами ...

Я хочу вызвать функцию Java, когда пользователь нажимает на ссылку в HTML-тексте, отображаемом в JTextPane.

Как мне этого добиться? Если есть необходимость реализовать прослушиватель событий? Если да, то какой приемник событий должен обрабатываться?

1 Ответ

4 голосов
/ 28 сентября 2011

Тип прослушивателя, который вы ищете, - это 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);
...