получить путь к файлу изображения, который находится за пределами проекта в Java - PullRequest
0 голосов
/ 22 декабря 2011

Я использую этот код для отображения изображения, которое находится за пределами моего проекта Java, но я получаю NullPointerException каждый раз, и я могу использовать только изображения, которые находятся в каталоге моего проекта. почему?

Icon welcomeImg = new ImageIcon(getClass().getResource("D:/img/welcome.png"));
or 
Icon welcomeImg = new ImageIcon(getClass().getResource("D://img/welcome.png"));

JLabel welcomingLb = new JLabel(welcomeImg);

Ответы [ 4 ]

2 голосов
/ 22 декабря 2011

Вам не нужно использовать класс ClassLoader для доступа к файлу, поскольку вы указываете полный путь к нему.

Попробуйте вместо:

Icon welcomeImg = new ImageIcon("D:/img/welcome.png");

Источник: Javadoc из ImageIcon (строковое имя файла)

2 голосов
/ 22 декабря 2011

getResource ожидает, что ресурс находится в пути к классам.

Если вы хотите читать из случайного файла, используйте File илииспользуйте конструктор ImageIcon, который принимает имя файла .

1 голос
/ 22 декабря 2011

См .: Загрузка ресурсов с использованием getClass (). GetResource ()

В основном, когда вы используете getResource, он ожидает, что файл будет в Classpath.Существует также конструктор для ImageIcon, который принимает имя файла String, поэтому вы можете напрямую передать путь к файлу Icon.

Проверьте JavaDoc для ImageIcon

0 голосов
/ 22 декабря 2011

Вы можете попробовать использовать файл, например, так:

File f = new File("C:\\folder\\stuff\\MyFile.class");
...