(Вопрос слишком неопределенный, чтобы ответить на него кратко / полностью - этот ответ предполагает, что основной частью является гиперссылка в JTable )
Подумайте об использовании фреймворка, который полностью поддерживает гиперссылки в компонентах коллекции (таблица, список, дерево ..) - например, f.i. SwingX
Пример кода в SwingX см. В недавнем ответе
Редактировать
Но что, если только часть ячейки является гиперссылкой или, что еще хуже, если в ячейке 2 разные ссылки?
Как уже упоминалось в моем комментарии: он не поддерживается в SwingX (он основан на ячейках).
Итак, вернемся к исходной точке с несколькими вариантами
Старый стиль: (неправильно) использовать cellEditor
- имеет компонент редактирования, который содержит / содержит гиперссылку
- имеет mouseListener, который начинает редактирование при наведении на ячейку
- С этого момента live-компонент заботится о mouseEvents и может запускать соответствующие действия при нажатии / щелчке по гиперссылке / с
Расширение стиля SwingX: обогатите интерфейс ролловера (у инкубатора могут быть примеры, но он не был добавлен в ядро SwingX по причине того, что он еще не готов :-) Основная идея -
- добавить "горячие точки" в интерфейс ролловера
- Усовершенствование (или замена) rolloverProducer для получения более мелких уведомлений после обнаружения ячейки с поддержкой опрокидывания
- преобразовать mousePosition в координаты ячейки (компонента рендеринга) и запросить ячейку, если она соответствует горячей точке, если (и только если) так, при нажатии и нажатии кнопка запускает действие
Второе, конечно, может быть реализовано независимо от SwingX: обычный пользовательский mouseListener и логика отображения должны помочь (извините, код не нужен)