ImageIcon не находит фото, путь правильный - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь импортировать несколько фотографий, используя приведенный ниже код.Кажется, что чек, который я только что добавил (оператор if), возвращается как «yay», так что файл там.Таким образом, он может найти, что файл работает нормально, но по какой-то причине он не может импортировать файл и создать imageIcon.Любая помощь будет принята с благодарностью!Я также пробовал относительный путь, но безуспешно!

Любая помощь будет принята с благодарностью, так как я уже давно тяну за волосы!

public class Photos {

    ImageIcon bi = new ImageIcon();
    // Position
    private int x, y;
    // Diameter (storlek)
    private int diameter;
    private int dynamicdiameter;

    public void importPhoto(String name) {
        String path = "/Users/Cedric/Dropbox/UU/OOPJ/Foton/src/img/";
        File imageCheck = new File(path+name);
        if(imageCheck.exists()){
            System.out.println("yay");
        }
        else{System.out.println("noo");}

            ImageIcon bi = createImageIcon(path+name, "Photo");
    }

    protected ImageIcon createImageIcon(String path,
                                        String description) {
        java.net.URL imgURL = getClass().getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL, description);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }    
}

1 Ответ

0 голосов
/ 24 марта 2019

Некоторые незначительные изменения должны сделать это правильно.Смотрите комментарии:

    public void importPhoto(String name) {

       String path = "/img/" + name;   //use correct path
        URL imgURL = getClass().getResource(path);

        if(imgURL != null){
            System.out.println("yay");
            bi = createImageIcon(imgURL, "Photo"); //avoid declaring a new bi
        } else {
            System.err.println("noo");
        }
    }

    protected ImageIcon createImageIcon(URL imgURL,String description) {

            return new ImageIcon(imgURL, description);
    }
...