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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хранение иконок на диске 
V
    Опции темы
agR
Дата 2.10.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Если у меня изображение берется по такому принципу:
Код

Icon openIcon = new ImageIcon(DrawingTest.class.getResource("images/open.gif"));

, то где тогда в реале должна находиться папка images, чтобы приложение смогло найти картинки????


PM MAIL ICQ   Вверх
Slavca
Дата 2.10.2006, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



JavaDoc для указанного метода:
Код

Finds a resource with a given name. The rules for searching resources associated with a given class are
implemented by the defining [B]class loader of the class[/B]. This method delegates to this object's class
loader. If this object was loaded by the bootstrap class loader, the method delegates to
ClassLoader.getSystemResource(java.lang.String).

т.е. загрузкой ресурса занимается тот-же ClassLoader, который загружал класс. Читаем дальше:
Код

 Before delegation, an absolute resource name is constructed from the given resource name using this algorithm:

    * If the name begins with a '/' ('\u002f'), then the absolute name of the resource is the portion of the name following the '/'.
    * Otherwise, the absolute name is of the following form:

             modified_package_name/name
           

      Where the modified_package_name is the package name of this object with '/' substituted for '.' ('\u002e'). 

т.к. символ '/' в начале не указан, то путь считается относительным - относительно пакета, в котором располагается класс.
Пробуем:
Код

import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        Icon openIcon = new ImageIcon(Main.class.getResource("images/open.gif"));

        if (openIcon == null) {
            return;
        }
        JFrame frame = new JFrame("df");
        frame.getContentPane().add(new JLabel(openIcon));
        frame.setSize(openIcon.getIconWidth()*2, openIcon.getIconHeight()*2);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}

Примечание: пакет не указан.
Теперь в папке images расположим файлик open.gif. И вот нам щастя.
Теперь пусть Main располагается в пакете ru.test:
Код

package ru.test;

import javax.swing.*;

public class Main {
    public static void main(String[] args) {
        Icon openIcon = new ImageIcon(Main.class.getResource("images/open2.gif"));
        ...
}

и картинку в ru.test.images -  вот нам щастя 2  smile 
В прикрепленном файлике - проект Idea с примером.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  testj2se.zip 91,41 Kb
PM ICQ   Вверх
agR
Дата 2.10.2006, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Slavca, спасибо.
Разжевал, в рот положил, еще и за кадык подергал smile
Сейчас буду пробовать.
PM MAIL ICQ   Вверх
agR
Дата 2.10.2006, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хммм.... работает, только есть одно "но".
Если раньше я создавал jar  файл и он у меня запускался,
то теперь с этим проблема.... smile
Как исправить?

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


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(agR @  2.10.2006,  22:53 Найти цитируемый пост)
Если раньше я создавал jar  файл и он у меня запускался,то теперь с этим проблема.... 

С чем с этим? Создаваемый jar перестал запускаться?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
agR
Дата 2.10.2006, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ага.... 
из JBuildera  все ок,
а сам File.jar не хочет
PM MAIL ICQ   Вверх
LSD
Дата 2.10.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Манифест выложи сюда, заодно глянь в свойствах jar файла, какой создается тип архива и указан ли main class.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
agR
Дата 2.10.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
LSD
Манифест выложи сюда, заодно глянь в свойствах jar файла, какой создается тип архива и указан ли main class.


Дело в том, что раньше я указывал явно путь к картинкам
Код

Icon newIcon = new ImageIcon(
                "D:/Install/Programming/Java/Icons/Icon/Marseilles/GIFs/documents_16.gif");


и создаваемый jar-файл нормально запускался, но на другом компе такой же папки не окажется,
поэтому я хочу как-нить сделать так, чтобы запуская jar-файл на другом компе картинки тоже отображались, то бишь упаковать их в этот jar-файл. 
Ведь это можно, вопрос как?  smile 

PM MAIL ICQ   Вверх
powerOn
Дата 2.10.2006, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



И еще, неплохо бы посмотреть каким образом происходит запуск jar файла. (так, на всякий случай  smile )

Добавлено @ 22:14 
Цитата(agR @  2.10.2006,  23:08 Найти цитируемый пост)
я хочу как-нить сделать так, чтобы запуская jar-файл на другом компе картинки тоже отображались, то бишь упаковать их в этот jar-файл. 


ну это можно с помощью архиватора сделать: jar -  это архив, его любой zip архиватор должен раскрыть. Или с помощью утилиты jar, которая входит в состав JDK.




--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
agR
Дата 2.10.2006, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата
powerOn
И еще, неплохо бы посмотреть каким образом происходит запуск jar файла. (так, на всякий случай smile )

Обычно, руками  smile. Другие jar'ы запускались по нажатию Enter или после 2-йного нажатия мышью.
И этот, до "нововведений" тоже запускался. В MANIFEST'е все пучком, т.е. норм, main class тот что нужно. 
PM MAIL ICQ   Вверх
LSD
Дата 2.10.2006, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

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



Цитата(agR @  2.10.2006,  23:08 Найти цитируемый пост)
поэтому я хочу как-нить сделать так, чтобы запуская jar-файл на другом компе картинки тоже отображались, то бишь упаковать их в этот jar-файл. Ведь это можно, вопрос как?

Создаешь в каталоге с исходниками папку images и кидаешь туда свои картинки. И проверь в настройках архива, что он ресурсы тоже упаковывает. А как грузить ресурсы из jar Slavca тебе уже показал.

Добавлено @ 22:22 
Цитата(agR @  2.10.2006,  23:15 Найти цитируемый пост)
Другие jar'ы запускались по нажатию Enter или после 2-йного нажатия мышью.

Запусти его руками из консоли (java -jar ...) и посмотри какие ошибки он тебе выдаст.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
agR
Дата 2.10.2006, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо всем.
Пошло, как дети в школу smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1940 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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