Добавление изображения в JTooltip без знания пути к изображению (поскольку изображение является временным ресурсом) - PullRequest
2 голосов
/ 02 ноября 2009

Чтобы быть немного более конкретным: Я создал простой многопоточный TCPServer (Java), который взаимодействует с клиентами (C # / mono). По запросу Клиенты делают снимок экрана и отправляют его на Сервер. Затем снимки экрана отображаются в JTable. Я хотел бы добавить всплывающую подсказку к этим изображениям в таблице с тем же изображением, но в другом размере. Код в настоящее время выглядит так:

screenLabel.setToolTipText("<html><img src=\"" + (new ImageIcon(image)) + "\"></img> Tooltip</html>");

Конечно, это не сработает, поскольку атрибут src требует пути. Проблема в том, что я не знаю, как обойти это поведение.
Мой вопрос, следовательно, будет либо:
1) Как получить действительный путь для временного ресурса (без сохранения ресурса в файловой системе)
OR
2) Как предоставить пользовательский JTooltip, который легко позволяет отображать изображения / ImageIcons

Ответы [ 2 ]

2 голосов
/ 02 ноября 2009

Можно добавить новый протокол помимо стандартного ftp / http / etc к разрешению URL-адреса, который затем сопоставляется с вашим собственным кодом, а не по сети.

Существует три подхода, перечисленных в http://www.unicon.net/node/776,, которые могут помочь вам начать работу. Я думал о расширении URLStreamHandler и регистрации его в JVM.

Относительно изменения JToolTip от http://www.manning -sandbox.com / message.jspa? MessageID = 9915

"Помните, JToolTip - это контейнер, поэтому подкласс JToolTip, чтобы заполнить его JTextArea / Pane. Установите JTA / JTP как не редактируемый и вуаля у вас есть многострочная подсказка! Точно так же вы можете отобразить любой пользовательский компонент, который вы хотите! «

0 голосов
/ 02 ноября 2009

Для варианта 2 вам необходимо:

а) создать пользовательскую подсказку
б) переопределить таблицу, чтобы использовать всплывающую подсказку.

Эта публикация предоставляет простой рабочий пример.

...