2010-03-19 3 views
0

Я пытаюсь изменить значок в кадре. Я практически попробовал все:С трудом добавить пользовательский значок в JFrame

  • Икона 16x16, который является правильный размер .... не работает

  • Я пытаюсь PNG, GIF и JPG форматы ни один из них не работает.

  • Пробовал другой способ настройки значка .... не работает.

  • Я пробовал относительные (локальные пути), например. «icon.gif» и абсолютные пути, например. "C: \ работа \ Java \ icon.gif" ... не работает

Вот мой код и посмотреть, если вы можете понять это Благодаря Oli

import javax.swing.*; 
    public class androidDriver 
    { 

     public static void main(String[] args) throws IOException 
     { 
      JFrame f = new JFrame("Android Data Viewer"); 
      f.setResizable(false); 
      f.setSize(300,300); 
      f.setLocationRelativeTo(null); 
      f.setVisible(true); 
      f.setIconImage(new ImageIcon("androidIcon2.gif").getImage()); 
     } 
    } 
+0

* работает для меня * (если я добавляю в 'java.io.' перед' IOException'. Вы запускаете его прямо из командной строки или с некоторыми IDub gubbins? –

+0

где именно это изображение? опубликовано будет искать изображение в том же каталоге, что и * run * от – objects

+0

да изображение, класс и java-файл находятся в одном месте – Oliver

ответ

0

I предположим, что вам, возможно, придется дождаться загрузки изображения с помощью MediaTracker. Вполне вероятно, что изображение по-прежнему загружается в точке, в которой задан параметр frameIconImage, поэтому он ничего не делает.

+0

IIRC,' ImageIcon' уже делает это. –

+0

он действительно делает это – objects

0

Вы пробовали использовать Toolkit.getDefaultToolkit() GetImage ("androidIcon2.gif")

И две вещи:.

  1. Существует ли изображение? Код, который вы опубликовали, будет терпеть неудачу.

  2. Правильно ли он отформатирован? (Хотя я предполагаю, что Java может справиться с этим, если бы не было)

+0

Да, он существует, добавлен файл .exists() и true напечатано Да - Java-документация говорит, что это должно быть 16x16 и либо GIF, JPG или PNG – Oliver

1

Если поместить изображение в том же каталоге, что и файл класса, то следующее должно работать для вас:

 f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage()); 

Также хотел бы предложить настройки изображения значка перед тем вы сделать фрейм видимым

 f.setIconImage(new ImageIcon(androidDriver.class.getResource("androidIcon2.gif")).getImage()); 
     f.setVisible(true); 
+0

Первое решение придумал исключения нулевого указателя исключение в потоке «главный» java.lang.NullPointerException в javax.swing.ImageIcon. (ImageIcon.java:138) в androidDriver. main (androidDriver.java:24) Java Результат: 1 Пробовал второе решение, но ничего не сделал – Oliver

+0

, что предполагает, что он не может найти изображение. На что установлен ваш путь к классу? – objects

0

сделать отдельную папку рядом с папкой источника затем поместить изображение там, и затем использовать ImageIO, чтобы получить изображение, например, так:

f.setIconImage(ImageIO.read(new File("res/androidIcon2.gif"))); 

Кроме того, если это не сработает, попробуйте сохранить изображение в формате .png вместо .gif.

Смежные вопросы