2012-02-17 7 views
0

для простого приложения Java Desktop Я добавил форму JFrame с помощником среды NetBeans. Для этого кадра я хочу изменить значок в строке заголовка. Я пытался сделать это с помощью следующего кода в самом конце конструктора в сформированном View класса:Изменение значка моего приложения java

ImageIcon ii = new ImageIcon(iconUrl); 
    this.getFrame().setIconImage(ii.getImage()); 

Строка iconUrl, безусловно, правильно, объект II, кажется, хорошо, насколько я могу судить из обзора переменных в перспективе отладчика. Однако значок в строке заголовка не изменяется, это по-прежнему значок java по умолчанию.

Почему?

ответ

4

Вы можете попробовать это:

Image i = ImageIO.read(getClass().getResource("/path/to/image")); 
setIconImage(i); 

Обратите внимание, что здесь / будет представлять ваш src каталог

+0

Это было быстро! Это сработало, спасибо! – bogus

+0

Отлично! Посмотрите здесь: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work –

+0

Когда я помещаю это в свой конструктор, он говорит: «Невозможно найти символ: Класс: Изображение» , Таким образом, он не знает класс «Изображение». Что не так? – amsmath

0

Попробуйте этот код

Image i = new ImageIcon(ClassLoader.getSystemResource("signal/icm/gui/images/oconp.png")).getImage(); 
setIconImage(i); 
+0

Никогда не используйте ClassLoader для доступа к не системным ресурсам, всегда используйте getClass(). GetResource (stringPath); Следите за строкой в ​​этом документе [Доступ к ресурсам] (http://docs.oracle.com/javase/7/docs/technotes/guides/lang/resources.html): «Все загрузчики классов будут сначала искать ресурс как системный ресурс, аналогично поиску файлов классов ». –

0

Надежда следующее решение работает для вас:

ImageIcon icon = new ImageIcon(IconURL); 
myImg = ImageIcon.getImage(); 
JFrame.setIconImage(myImg); 
Смежные вопросы