Подтвердить что ты не робот

Гиперссылка в JEditorPane

У меня есть несколько ссылок, отображаемых в JEditorPane ex:

http://www.google.com/finance?q=NYSE:C

http://www.google.com/finance?q=NASDAQ:MSFT

Я хочу, чтобы я мог нажимать на них и что он отображается в браузере

Любые идеи, как это сделать?

4b9b3361

Ответ 1

Вот несколько частей:

Правильно настройте JEditorPane

JEditorPane должен иметь тип контекста text/html, и он должен быть недействительным для ссылок, которые можно щелкнуть:

final JEditorPane editor = new JEditorPane();
editor.setEditorKit(JEditorPane.createEditorKitForContentType("text/html"));
editor.setEditable(false);

Добавить ссылки

Вам нужно добавить фактические теги <a> в редактор, чтобы они отображались как ссылки:

editor.setText("<a href=\"http://www.google.com/finance?q=NYSE:C\">C</a>, <a href=\"http://www.google.com/finance?q=NASDAQ:MSFT\">MSFT</a>");

Добавить обработчик ссылок

По умолчанию щелчок по ссылкам ничего не сделает; вам нужно HyperlinkListener, чтобы справиться с ними:

editor.addHyperlinkListener(new HyperlinkListener() {
    public void hyperlinkUpdate(HyperlinkEvent e) {
        if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {
           // Do something with e.getURL() here
        }
    }
});

Как вы запускаете браузер для обработки e.getURL(), зависит от вас. Один из способов использования Java 6 и поддерживаемой платформы - использовать класс Desktop:

if(Desktop.isDesktopSupported()) {
    Desktop.getDesktop().browse(e.getURL().toURI());
}