Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нажатие на гиперссылку в JTextPane, как обработать? 
V
    Опции темы
filipp76
Дата 23.3.2008, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



Для добавления гиперссылки в jTextPane использовал этот код (спасибо nornad):

 
Код

               try {
                    int sels = textPane.getSelectionStart(), sele = textPane.getSelectionEnd();
                    int cpos = textPane.getCaretPosition();
                    HTMLEditorKit kit = (HTMLEditorKit) textPane.getEditorKit();
                    HTMLDocument doc = (HTMLDocument) textPane.getStyledDocument();
                    if ( sels == sele ) {
                        kit.insertHTML(
                                doc, 0 > cpos ? 0 : cpos,
                                "<a href='http://www.nornad.com/'>nornad website</a> ", 0, 0, HTML.Tag.A
                        );
                        textPane.setCaretPosition(cpos + "nornad website".length());
                        doc.insertString(cpos + "nornad website".length(), " ", null);
                    } else {
                        String html = "<a href='http://www.nornad.com/'>" + textPane.getSelectedText() + "</a>";
                        textPane.replaceSelection("");
                        kit.insertHTML(
                                doc, sels, html,
                                0, 0, HTML.Tag.A
                        );
                    }
                }
                catch( Throwable th ) {
                    th.printStackTrace();
                }


Все чудесно отображаеться, но как сделать так чтоб при нажатии на эту гиперссылку открывался IE или Opera? Просто какой тогда смысл её добавлять если при нажатии на неё ничего не открываеться. Заранее спасибо.
PM MAIL WWW ICQ   Вверх
w1nd
Дата 24.3.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вертилятор
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 22.3.2006
Где: Москва

Репутация: 23
Всего: 54



Почему вы решили, что при активизации ссылки обязательно должен открыться браузер? Это ведь вам только нужно.

Цитата(Javadoc)
The HTML EditorKit will generate hyperlink events if the JEditorPane is not editable

Просто обрабатывайте их.



--------------------
user posted imageuser posted image
PM MAIL ICQ   Вверх
filipp76
Дата 24.3.2008, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



Вот только как их обрабатывать? И не пойму как запустить IE и передать ему ссылку на которую я нажал?
PM MAIL WWW ICQ   Вверх
RebornCrusader
Дата 24.3.2008, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 18.1.2007
Где: Владивосток

Репутация: 3
Всего: 6



Ну например так работает:
Код

Runtime.getRuntime().exec("cmd /C start iexplore forum.vingrad.ru");


Это сообщение отредактировал(а) RebornCrusader - 24.3.2008, 15:10
--------------------
"Fais se que dois, - adviegne que peut. C'est commande au chevalier"
PM   Вверх
AlexeyVorotnikov
Дата 24.3.2008, 18:52 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 658
Регистрация: 18.6.2007
Где: Москва

Репутация: 3
Всего: 18



В шестой Java можно сказать
Код

Desktop.getDesktop().browse(new URI("http://куда-надо"));

и запустится дефолтовый броузер системы с этим адресом.

Это сообщение отредактировал(а) AlexeyVorotnikov - 25.3.2008, 10:33


--------------------
RTFM!
Три источника и три составные части Java: The Java Language Specification, Java Platform API Specification, The Java Virtual Machine Specification
PM MAIL   Вверх
filipp76
Дата 24.3.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



Большое спасибо за примеры, но я не пойму как обработать самое нажатие и забрать эту ссылку из окна?
PM MAIL WWW ICQ   Вверх
RebornCrusader
Дата 25.3.2008, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 18.1.2007
Где: Владивосток

Репутация: 3
Всего: 6



Код

        textPane.addHyperlinkListener(new HyperlinkListener() {
            public void hyperlinkUpdate(HyperlinkEvent e) {
                URL url = e.getURL();
            }
        });

--------------------
"Fais se que dois, - adviegne que peut. C'est commande au chevalier"
PM   Вверх
filipp76
Дата 25.3.2008, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

Репутация: 1
Всего: 1



Цитата(RebornCrusader @ 25.3.2008,  01:58)
Код

        textPane.addHyperlinkListener(new HyperlinkListener() {
            public void hyperlinkUpdate(HyperlinkEvent e) {
                URL url = e.getURL();
            }
        });

Грац! Спасибо!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.