JLabel setIcon вызывает ошибку во время выполнения - PullRequest
1 голос
/ 28 ноября 2011

Я создаю приложение Java в NetBeans, и у меня есть следующий код, который иногда вызывается после нажатия кнопки, чтобы поместить предоставленное изображение и строку в JLabel, который был помещен в GUI Builder:

helpLabel.setIcon(new ImageIcon("/bepe/resources/" + e.imageFile));
helpLabel.setText(e.getMessage());

Изображения находятся в подкаталоге «Ресурсы», который находится в том же месте, что и файлы для программы. Текст метки установлен так, как ожидается, но изображение не появляется. Если я заранее установлю изображение в GUI Builder, оно появится. Сгенерированный код для этого

helpLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bepe/resources/orIntro.png")));

Но когда я пытаюсь установить значок таким же образом, я получаю ошибку во время выполнения. Что-то не так с тем, как я настраиваю изображение?

1 Ответ

4 голосов
/ 28 ноября 2011

В этом объявлении предполагается, что изображение находится в пути к классу приложения во время выполнения и обращается к нему по URL.Это способ доступа к ресурсу в Jar.

helpLabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("/bepe/resources/orIntro.png")));

В этом объявлении предполагается, что аргумент String представляет путь File.Он не будет работать для «ресурса приложения», который (предположительно) находится в Jar.

helpLabel.setIcon(new ImageIcon("/bepe/resources/" + e.imageFile));

Используйте getResource последовательно и убедитесь, что образ находится в классе времени выполнения.путь.

...