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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JTextPane+Html+ссылки 
V
    Опции темы
filipp76
Дата 3.6.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Такой вопрос, у меня есть JTextPane(text/html), я загружаю туда картинки таким тэгом 
"<img src=http://image.com.ua/img/0.gif>"
Как сделать ссылки на картинку которая лежит в *.jar?(надо заменить сылку на файл с сервера на файл в *.jar).Или хотябы заменить её на локальную ссылку. Я гдет видел такое, вроде надо использовать URL. Приведите пример пожалуйста. 

Это сообщение отредактировал(а) filipp76 - 3.6.2007, 11:25
PM MAIL WWW ICQ   Вверх
filipp76
Дата 3.6.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Поюзал поиск и не нашел можно ли загрузить рисунок с *.jar. Но нашел такое
 <img src="file:///0.gif">
Но почему-то не работает((. Это правильно написано? И где должен лежать файл?
PM MAIL WWW ICQ   Вверх
cromm3
Дата 3.6.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 22.3.2006

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



Цитата

И где должен лежать файл?


в корне диска, на котором расположено приложение.

Соответственно из jar тянем также <img src="file:///0.gif"> файл 0.gif располагается в верхнем уровне jar.

Это сообщение отредактировал(а) cromm3 - 3.6.2007, 15:53
PM   Вверх
filipp76
Дата 3.6.2007, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(cromm3 @  3.6.2007,  15:29 Найти цитируемый пост)
в корне диска, на котором расположено приложение.Соответственно из jar тянем также <img src="file:///0.gif"> файл 0.gif располагается в верхнем уровне jar.


Не работает ни при каких условиях...(

Добавлено через 9 минут и 10 секунд
Вот сам html код
Код

<html>
  <head>    
  </head>
  <body>
    <b><font color="RED">filipp (03.05.2007 17:08:22)</font></b><br><b>Hello<img src="file:///0.gif"></b><br>
  </body>
</html>


Файл 0.gif лежит весде и в *.jar и в корне приложения, все равно не выводится((
PM MAIL WWW ICQ   Вверх
cromm3
Дата 3.6.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 22.3.2006

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



Можно пример того как добавляется html в JTextPane? Может там проблема...
PM   Вверх
nornad
Дата 3.6.2007, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Попробуй file:///c:/0.gif

Добавлено через 2 минуты и 41 секунду
Как в жаре путь указать - не знаю. Возможно, так: file:///c:/my_jar.jar/0.gif


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
filipp76
Дата 3.6.2007, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(cromm3 @  3.6.2007,  17:57 Найти цитируемый пост)
Можно пример того как добавляется html в JTextPane? Может там проблема...

Тэг читается правильно выводится просто квадратик без иконки, если пишу например  <img src="www.server.com/1.gif">  то все работает, значит проблема все-таки не тут.

Цитата(nornad @  3.6.2007,  18:16 Найти цитируемый пост)
Попробуй file:///c:/0.gif

Так работает, но я не могу всегда указывать точный путь, ведь у всех приложение будет лежать в разных каталогах. Как получить тогда путь к *.jar? Но я считаю что все должно быть проще. 

Цитата(nornad @  3.6.2007,  18:16 Найти цитируемый пост)
Как в жаре путь указать - не знаю. Возможно, так: file:///c:/my_jar.jar/0.gif

Так не работает.


PM MAIL WWW ICQ   Вверх
filipp76
Дата 3.6.2007, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Ничего не понимаю smile , как не пытаюсь ничего не получается, перепробовал уже все варианты. Работает только с явным указание пути к файлу, и то в каталоге, а не *.jar. Помогите пожалуйста решить проблемму, перегуглил все что можно ,множество народа стыкается с данной проблемой но решения я не нашел.

Добавлено через 13 минут и 2 секунды
Так можно загрузить картинку с каталога с программой "<img src=\"file:s0.gif\">" Но как загрузить с *.jar беспонятия(((
PM MAIL WWW ICQ   Вверх
nornad
Дата 4.6.2007, 00:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Цитата(filipp76 @  3.6.2007,  21:33 Найти цитируемый пост)
Цитата(nornad @  3.6.2007,  18:16 Найти цитируемый пост)
Как в жаре путь указать - не знаю. Возможно, так: file:///c:/my_jar.jar/0.gif

Так не работает.

А поиск по форуму пробовал?
Вот, что я нашёл за десять минут:
Код

jar:file:/C:/path/my.jar!/res/img/pic.jpeg

Автор сего варианта - LSD.


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
filipp76
Дата 4.6.2007, 07:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(nornad @  4.6.2007,  00:50 Найти цитируемый пост)
jar:file:/C:/path/my.jar!/res/img/pic.jpeg

Это все хорошо но файл *.jar могут переименовать и путь может поменятся. Скажите пожалуйста тогда как получить имя *.jar и путь к ней, должны же быть для этого методы.
PM MAIL WWW ICQ   Вверх
nornad
Дата 4.6.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



Цитата(filipp76 @  4.6.2007,  10:47 Найти цитируемый пост)
Это все хорошо но файл *.jar могут переименовать и путь может поменятся.

А ещё могут переименовать сам файл картинки, вытащить его из жара. Или ещё хуже - запустят совсем другое приложение. Или совсем плохо - пришельцы вдруг прилетят и подарят 500 эскимо.
Я бы сделал проще - проверял, есть ли нужный мне жар в одном из нужных мест. Если нету - юзер дурак и пусть возвращает всё как было. Не хочет - его проблемы. Поломать всегда можно любую систему. А делать защиту от совсем дураков, имхо, не стоит. Твои пользователи же не переименовывают системные длл в винде? Так почему надо разрешать им жары переименовывать?
А если это ты можешь переименовать в будущем жарку, то добавь в неё класс с методом, который будет возвращать имя жарки (просто строку руками вбей). А может, даже есть возможность программно определить имя жарки, в которой класс лежит. Тогда ещё проще.

Добавлено через 1 минуту и 38 секунд
И, кстати, первоначально вопрос был:

Цитата(filipp76 @  3.6.2007,  14:11 Найти цитируемый пост)
Как сделать ссылки на картинку которая лежит в *.jar?(надо заменить сылку на файл с сервера на файл в *.jar).Или хотябы заменить её на локальную ссылку.


Аппетит приходит во время еды.  smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
filipp76
Дата 4.6.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Мдя я много не прошу, например в Delphi есть функция Application.Exename() - возвращает полный путь к файлу вместе с именем *.exe, я верен что чтот подобное должно быть и в Java. Ну не верю я что надо четко прописывать путь ! Такого просто не бывает, фиг уже с тем именем джарки, но говорить пользователю что программа должна лежать в таком-то каталоге, это просто глупо!
Код

jar:file:/my.jar!/res/img/pic.jpeg

Почему так не работает???

Добавлено через 5 минут и 13 секунд
Проверьте пожалуйста у себя, может я тэг как-то не правильно пишу, буду очень признателен..

Это сообщение отредактировал(а) filipp76 - 4.6.2007, 14:52
PM MAIL WWW ICQ   Вверх
fixxer
Дата 4.6.2007, 16:26 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Господа, по моему скромному мнению, вы загнались.
Для доступа к ресурсу достаточно, чтобы он был в classpath'е и знать относительный путь к нему.

Код

getClass().getResource("<realative path>/<resource name>");


Например:

1) Ресурс находится в основном jar'е с путем в img/picture.gif

Код

getClass().getResource("img/picture.gif");


2) Ресурс находится в другом jar'e, например resources.jar рядом с нашим

Код

getClass().getResource("img/picture.gif");


Но запускаем:

Код

java -cp ./ourjar.jar;./resouces.jar <our main class name>


3) На диске в c:\img\picture.gif

опять таки:

Код

getClass().getResource("img/picture.gif");


Но запускаем:

Код

java -cp с:/;./ourjar.jar <our main class name>



Это сообщение отредактировал(а) fixxer - 4.6.2007, 16:26


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


Опытный
**


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

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



Код

<img src=jar:file:"+path+"!/skin/custom/friends.gif><html>


Путь можно определить по тому классу, который тебе нужен. Предположим (гипотетически), что внутри искомого jar лежит класс java.util.Set. Тогда путь к jar можно получить так:
Код

String u = this.getClass().getResource("/java/util/Set.class").getFile();
String a = u.substring(u.indexOf('/'));
String b = a.substring(0, a.indexOf('!'));
String c = b.substring(0, b.lastIndexOf('/'));
        
System.out.println(c);



--------------------
user posted image
PM WWW ICQ   Вверх
nornad
Дата 4.6.2007, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1079
Регистрация: 16.2.2007
Где: в Караганде

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



fixxer, ты тему читал? Вопрос был про то, как в JTextPane в стандартном теге img отобразить картинку из жарки, а не про то, как её вообще загрузить из жарки.

Hidrag, я подозревал, что что-то подобное можно сделать (определить путь к классу), но никогда сам с этим не игрался. В любом случае спасибо - теперь будет возможность подсмотреть при необходимости.  smile 


--------------------
Три достоинства программиста: Леность, Нетерпение и Гордость
Ларри Уолл
PM MAIL WWW ICQ Skype MSN   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0564 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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