Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Путь к библиотеке иконок


Автор: JDisel 9.12.2010, 16:51
только начал изучение, потому прошу сильно не бить. Вопрос, наверное, простой.
Среда разработки IntelliJ IDEA 9. Скачал файл jlfgr-1_0.jar содержащий иконки для кнопок в стиле Metal. Добавил я этот файл в библиотеки Intelli.
Далее , что бы вытащить файлы иконок  создал свой класс:
Код

public class AddIcon {
    private static String[] FolderList = {"development", "general", "media", "navigation", "table", "text"};

    private static Icon icon;
    public  AddIcon(String IconName){
        String IconPath = "";
        for(int folderNo = 1; folderNo < FolderList.length; folderNo++){
            IconPath = "toolbarButtonGraphics/" + FolderList[folderNo] + "/" + IconName;
            String imgLocation = IconPath;
            URL imageURL = getClass().getResource(imgLocation);
             if (imageURL != null) {
               icon =  new ImageIcon(imageURL);
               break;
            }
        }
    }
   
    public void setFolderList(String[] folderList) {
        FolderList = folderList;
    }

    public static Icon getIcon(){
        return icon;
    }
}

и в программе получаю иконку следующим способом:

Код

public class Test1 {
    public static void main(String[] args) {
       JFrame frm = new MyJFrame(); 
       JButton btn = new JButton("button",new AddIcon("About16.gif").getIcon());
        frm.getContentPane().add(btn,"Center");
  }
}

если мой класс AddIcon не включать в пакет, то он работает нормально. Как только я добавляю этот класс в пакет, то он перестает возвращать иконку. Судя по всему ошибка в конструкторе этого класса, нужно как -то по другому указать путь к файлам иконок. Но как правильно сделать, пока не понял.
Спасибо

Автор: Skipy 9.12.2010, 17:15
Если путь к ресурсу не начинается с '/', то он считается относительным (от текущего пакета). Поставьте впереди '/', должно помочь.

Автор: JDisel 9.12.2010, 17:21
Спасибо, понял, работает.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)