Загрузка изображений из банок для Swing HTML - PullRequest
16 голосов
/ 16 июня 2011

Хотя этот ответ работает для загрузки изображений из файлов Jar для ImageIcons, я не могу найти правильный путь для изображений, на которые есть ссылки в Swing HTML .

Это отображает изображение в HTML-код Swing, когда ресурсы не объединены в банку:

new JLabel("<html><table cellpadding=0><tr><td><img src='file:icons/folder_link.png'></td></tr><tr><td>100</td></tr></table></html>") );

Внутри банки можно успешно сослаться (и отображать) изображение в ImageIcon:

Icon topIcon = new ImageIcon( getClass().getResource("icons/folder_link.png" ) );

Однако моя попытка использовать технику getResource для Swing HTML не работает.

String p = getClass().getResource("icons/folder_link.png" ).getPath();
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );

В чем секрет?

Ответы [ 4 ]

15 голосов
/ 16 июня 2011

На самом деле, даже не попробовав, я бы предположил, что средство визуализации HTML может получить доступ к вашему изображению, если вы включите URL-адрес ресурса в свой HTML-код:

String p = getClass().getResource("icons/folder_link.png" ).toString();
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );
9 голосов
/ 16 июня 2011

URL-адрес является секретным

Попробуйте этот помощник:

URL p = getClass().getResource("icons/folder_link.png" );
new JLabel("<html><table cellpadding=0><tr><td><img src='" + p + "'></td></tr><tr><td>100</td></tr></table></html>") );

Тогда вы также можете сделать это:

Icon topIcon = new ImageIcon(p);

, а затемустановите этот значок как значок для вашего JLabel, если вы хотите это сделать!

6 голосов
/ 16 июня 2011
0 голосов
/ 16 июня 2011

Поскольку даже оригинальная демоверсия от Sun для использования HTML в Swing не встраивает изображения в HTML (для создания кнопок с значками изображений), я сомневаюсь, что есть даже поддержкадля отображения изображений на месте.Я помню читателя "ограниченное подмножество HTML" где-то, но сейчас не могу найти ссылку.

Редактировать: Пожалуйста, посмотрите комментарий и ответ Эндрю, это действительно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...