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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JFrame. Как изменить иконку с чашкой кофе? Как изменить иконку с чашкой кофе? 
:(
    Опции темы
Dimatochkaru
Дата 17.9.2008, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Добрый день! 
Думал пустячный вопрос, а вот уже который час не могу изменить 
иконку вместо чашки с кофем!! 

MainContentObj -объект класса JFrame; 
Рисунок icon.gif лежит в папке "src/images/" 
("src/images/icon.gif") 

Иконка размером (16 на 16); Пробовал и 32 на 32. Менял расширения: jpg, ico и gif; 

При изменении делаю "Clean and Build" затем Run 
Работаю в NetBeans 6.0, но запускал jar через Ant непосредственно из командной сроки; 

Windows XP; 


Пробовал такие варианты: 

1) 
Код

MainContentObj.setIconImage(Toolkit.getDefaultToolkit().getImage(this.getClass().getClassLoader().getResource("images/icon.gif"))); 

(Путь определяет правильный, изображение находит, отображать не хочет); 

2) 
Код

try { 
Image icon =ImageIO.read(MainContent.class.getResourceAsStream("images/icon.gif")); 
MainContentObj.setIconImage(icon); 
} 
catch (IOException ex) 
{ 
ex.printStackTrace(); 
}

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


Опытный
**


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

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



я так делал
Код

        java.net.URL imgURL = LoginGUI.class.getResource("images/lock_go.png");
        if (imgURL != null) {
            this.setIconImage(new ImageIcon(imgURL).getImage());
        }

какие то смутные сомнения - проблема может быть в том что файлы не определены в package 
Попробуй положить все в какую нибудь папку, может получится. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
LSD
Дата 18.9.2008, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



1. Начни уже пользоваться кнопкой Код!
2. Выбирай правильный раздел!
3. Что значит пробовал такие варианты, что в результате? Какие ошибки получил?
4. Проверь что твоя иконка была скопирована в папку где лежат скомпилированные классы.


--------------------
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   Вверх
maxlab
Дата 30.9.2008, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

        Image img = new ImageIcon(Application.class.getResource("/b2009/images/MainICO.png")).getImage();
        this.setIconImage(img);


вот так работает. Обращай внимание на путь к иконкам. Я всегда указываю от корня проекта. Application - это класс главного окна, куда иконка лепится.
--------------------
Удивительное рядом... но оно запрещено!
PM MAIL   Вверх
Griphon
Дата 13.12.2008, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Хочу поменять иконку фрейма, для этого использовал                              
Код

Toolkit kit= Toolkit.getDefaultToolkit();
Image img=kit.getImage("note.jpg");    
        frame.setIconImage(img);

пробовал разные вариации типа
Код

kit.getDefaultToolkit.createImage

или
Код

ImageIcon img= new ImageIcon("D:\\WORK\\Akop's3dsmax&0thers\\workspace\\Новая папка\\BYRIME\\fish2.gif");
        frame.setIconImage(img.getImage());

не один из них иконку не подтянул
Пробовал разные картинки jpeg, ico, gif
PM MAIL   Вверх
LSD
Дата 17.12.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Ты проверял, что ImageIcon не null?


--------------------
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   Вверх
Qawra
Дата 28.12.2008, 01:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я попробовала поменять , строчка кода 
    Image mainIcon = new ImageIcon(MyGui.class.getResource("O:\!!!! Project  Elements\GUI\mainIcon3")).getImage();
выдала мне ошибку illegal escape character 
Может быть проблема в том что папка проекта находиться на флешке ?

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


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

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



Обратный слэш (\) экранируется еше одним обратным слешем, т.е. \ в строке выглядит как "\\".

В путях файлов рекомендую использовать обычные слэши, т.е. /
PM MAIL   Вверх
agR
Дата 28.12.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(SoulKeeper @  28.12.2008,  02:22 Найти цитируемый пост)
В путях файлов рекомендую использовать обычные слэши, т.е. / 

Все таки лучше пользоваться "\\", так как обычная косая черта "/" это в большей степени к винде относится, а в другой системе могут быть другие разделители. А если уж вообще с фанатизмом подойти к делу, то есть получить 100% гарантию правильного разделителя, то надо использовать File.separator. 
PM MAIL ICQ   Вверх
SoulKeeper
Дата 28.12.2008, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.1.2007
Где: Ukraine, Lviv.

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



Цитата(agR @ 28.12.2008,  14:53)
Цитата(SoulKeeper @  28.12.2008,  02:22 Найти цитируемый пост)
В путях файлов рекомендую использовать обычные слэши, т.е. / 

Все таки лучше пользоваться "\\", так как обычная косая черта "/" это в большей степени к винде относится, а в другой системе могут быть другие разделители. А если уж вообще с фанатизмом подойти к делу, то есть получить 100% гарантию правильного разделителя, то надо использовать File.separator.

Вообще-то в винде как раз таки бэк слеши (E:\programming\groovy - к примеру), но java чудесно работает со слешами.
PM MAIL   Вверх
math64
Дата 28.12.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если воткнёшь флешку в другой USB порт буква диска изменится и файл не найдётся. Такие картинки лучше хранить в виде ресурсов
Код

Image mainIcon = new ImageIcon(getClass().getResource("/GUI/mainIcon3.png"));
 
Картинка должна находиться в подкаталоге каталога ресурсов проекта (res если выделяется отдельный каталог для ресурсов или корневой каталог исходников если ресурсы исходники хранятся вместе), заглавные или строчные буквы - как в названии файла, русские буквы не употреблять, не забывать расширение.
PM   Вверх
agR
Дата 29.12.2008, 00:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(SoulKeeper @  28.12.2008,  15:00 Найти цитируемый пост)
Вообще-то в винде как раз таки бэк слеши (E:\programming\groovy - к примеру), но java чудесно работает со слешами. 

Вот нашел кое-что...
Цитата

разделитель "/" работает точно так же, как и "\" во многих
программах и системных вызовах Windows. Дело в том, что в прародителе DOS -
операционной системе CP/M - не было директорий и, следовательно,
разделителей в именах файлов. Прямой слэш "/" был уже задействован для
передачи опций командам CP/M; обратный слэш "\" стали использовать как
разделитель директорий в именах файлов, однако оболочка понимает и "/" для
совместимости с другими операционными системами.

Это не принципиально, но я б "/" не пользовался. ИМХО 
PM MAIL ICQ   Вверх
bars_uz
Дата 30.12.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



работает на сто..
Код

package test;

...

public class Test extends JFrame{

public Test(){
...
   setIconImage(getImage());
...
}

.....

protected static Image getImage() {
// link.class класс
   java.net.URL imgURL = test.images.link.class.getResource("icon.gif");
   if (imgURL != null) {
      return new ImageIcon(imgURL).getImage();
   } else {
      return null;
   }
}
...
}


PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0693 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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