| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: GUI и Java FX приложения > JTextPane+Html+ссылки |
| Автор: filipp76 3.6.2007, 11:11 |
| Такой вопрос, у меня есть JTextPane(text/html), я загружаю туда картинки таким тэгом "<img src=http://image.com.ua/img/0.gif>" Как сделать ссылки на картинку которая лежит в *.jar?(надо заменить сылку на файл с сервера на файл в *.jar).Или хотябы заменить её на локальную ссылку. Я гдет видел такое, вроде надо использовать URL. Приведите пример пожалуйста. |
| Автор: filipp76 3.6.2007, 14:42 |
| Поюзал поиск и не нашел можно ли загрузить рисунок с *.jar. Но нашел такое <img src="file:///0.gif"> Но почему-то не работает((. Это правильно написано? И где должен лежать файл? |
| Автор: cromm3 3.6.2007, 15:29 | ||
в корне диска, на котором расположено приложение. Соответственно из jar тянем также <img src="file:///0.gif"> файл 0.gif располагается в верхнем уровне jar. |
| Автор: cromm3 3.6.2007, 17:57 |
| Можно пример того как добавляется html в JTextPane? Может там проблема... |
| Автор: nornad 3.6.2007, 18:16 |
| Попробуй file:///c:/0.gif Добавлено через 2 минуты и 41 секунду Как в жаре путь указать - не знаю. Возможно, так: file:///c:/my_jar.jar/0.gif |
| Автор: filipp76 3.6.2007, 18:33 | ||||
Тэг читается правильно выводится просто квадратик без иконки, если пишу например <img src="www.server.com/1.gif"> то все работает, значит проблема все-таки не тут. Так работает, но я не могу всегда указывать точный путь, ведь у всех приложение будет лежать в разных каталогах. Как получить тогда путь к *.jar? Но я считаю что все должно быть проще.
Так не работает. |
| Автор: filipp76 3.6.2007, 21:50 |
| Ничего не понимаю Добавлено через 13 минут и 2 секунды Так можно загрузить картинку с каталога с программой "<img src=\"file:s0.gif\">" Но как загрузить с *.jar беспонятия((( |
| Автор: nornad 4.6.2007, 00:50 | ||||
А поиск по форуму пробовал? http://forum.vingrad.ru/index.php?showtopic=134412&view=findpost&p=1024533, что я нашёл за десять минут:
Автор сего варианта - LSD. |
| Автор: filipp76 4.6.2007, 07:47 |
Это все хорошо но файл *.jar могут переименовать и путь может поменятся. Скажите пожалуйста тогда как получить имя *.jar и путь к ней, должны же быть для этого методы. |
| Автор: nornad 4.6.2007, 13:37 | ||||
А ещё могут переименовать сам файл картинки, вытащить его из жара. Или ещё хуже - запустят совсем другое приложение. Или совсем плохо - пришельцы вдруг прилетят и подарят 500 эскимо. Я бы сделал проще - проверял, есть ли нужный мне жар в одном из нужных мест. Если нету - юзер дурак и пусть возвращает всё как было. Не хочет - его проблемы. Поломать всегда можно любую систему. А делать защиту от совсем дураков, имхо, не стоит. Твои пользователи же не переименовывают системные длл в винде? Так почему надо разрешать им жары переименовывать? А если это ты можешь переименовать в будущем жарку, то добавь в неё класс с методом, который будет возвращать имя жарки (просто строку руками вбей). А может, даже есть возможность программно определить имя жарки, в которой класс лежит. Тогда ещё проще. Добавлено через 1 минуту и 38 секунд И, кстати, первоначально вопрос был:
Аппетит приходит во время еды. |
| Автор: filipp76 4.6.2007, 14:50 | ||
Мдя я много не прошу, например в Delphi есть функция Application.Exename() - возвращает полный путь к файлу вместе с именем *.exe, я верен что чтот подобное должно быть и в Java. Ну не верю я что надо четко прописывать путь ! Такого просто не бывает, фиг уже с тем именем джарки, но говорить пользователю что программа должна лежать в таком-то каталоге, это просто глупо!
Почему так не работает??? Добавлено через 5 минут и 13 секунд Проверьте пожалуйста у себя, может я тэг как-то не правильно пишу, буду очень признателен.. |
| Автор: fixxer 4.6.2007, 16:26 | ||||||||||||
| Господа, по моему скромному мнению, вы загнались. Для доступа к ресурсу достаточно, чтобы он был в classpath'е и знать относительный путь к нему.
Например: 1) Ресурс находится в основном jar'е с путем в img/picture.gif
2) Ресурс находится в другом jar'e, например resources.jar рядом с нашим
Но запускаем:
3) На диске в c:\img\picture.gif опять таки:
Но запускаем:
|
| Автор: Hidrag 4.6.2007, 16:38 | ||||
Путь можно определить по тому классу, который тебе нужен. Предположим (гипотетически), что внутри искомого jar лежит класс java.util.Set. Тогда путь к jar можно получить так:
|
| Автор: nornad 4.6.2007, 18:03 |
| fixxer, ты тему читал? Вопрос был про то, как в JTextPane в стандартном теге img отобразить картинку из жарки, а не про то, как её вообще загрузить из жарки. Hidrag, я подозревал, что что-то подобное можно сделать (определить путь к классу), но никогда сам с этим не игрался. В любом случае спасибо - теперь будет возможность подсмотреть при необходимости. |
| Автор: filipp76 4.6.2007, 18:58 |
| Hidrag, Огромное спасибо, интересный подход и что самое главное все отлично работает! |
| Автор: Hidrag 4.6.2007, 22:47 |
![]() Я сам недавно парился с похожей проблемой |
| Автор: fixxer 4.6.2007, 23:27 | ||
А я картинку и не грузил. Кто мешает полученный с помощью getClass().getResource URL подставить в тэг и не париться со всякими jar:file:/my.jar!/res/img/pic.jpeg |
| Автор: Hidrag 4.6.2007, 23:36 |
| fixxer, попробуй! Если получится будем тебе очень признательны, честно! Задача для простоты такая нужно подгрузить картинку из JAR и вывести его в в Лэйбле при этом не setIcon() а setText("<html>картинка<html>"); |
| Автор: fixxer 5.6.2007, 09:35 | ||
Опять таки при условии что /img/picture.gif доступно по classpath, причем неважно jar это или каталог на диске. |
| Автор: filipp76 5.6.2007, 14:19 | ||||
Вечером попробую, если работает то отлично! Хотя я не понимаю, url это же не String!? потому
|
| Автор: fixxer 5.6.2007, 15:42 | ||||
При конкатенации строки с любым Object неявно вызывается метод toString() |
| Автор: filipp76 5.6.2007, 16:50 |
| fixxer, спасибо! Твой вариант самый просто идеальный)! |