(Прежде всего, мне очень жаль Если есть как миллион вопросов, как это. Я пробовал все, что могу, и это сводит меня с ума!)Ошибка при получении изображения из папки ресурсов
Я m пытался иметь значок для JButton, но я продолжаю получать IllegalArgumentException
, вызванный ImageIO.
Вот что у меня есть:
//Other UI elements^
JButton X = new JButton("Clear");
//com.oliveira.ux is the package name
Image img = ImageIO.read(getClass().getResource("/com.oliveira.ux/resource/gtk-clear.png"));
Icon clear = new ImageIcon(img);
//More UI elements
Икона находится под SRC/имя пакета/ресурсов /. (Я использую затмение). Я попытался изменить местоположение в коде выше (тот, который я написал здесь, был последним, который я пробовал), но все, что я получаю, является исключением IllegalArgumentException, когда я запускаю .jar. Какие-либо предложения?
Большое спасибо заранее
Вот полное сообщение об ошибке:
Caused by: java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(Unknown Source)
at com.oliveira.ux.Main.<init>(Main.java:146)
at com.oliveira.ux.Main.main(Main.java:75)
... 5 more
Это указывает на часть ImageIO в коде, я написал выше.
Пожалуйста, разместите полную трассировку стека вместе с разделами «вызвано» и укажите инструкцию в своем коде, который бросает исключение. –
'getClass(). GetResource()' ищет файл относительно местоположения текущего класса, поэтому, если ваш класс уже находится в пакете com.oliveira.ux, вам нужно передать его '' resource/gtk- clear.png "'. В стороне, пакеты являются папками, поэтому com должен быть папкой, oliveira должна быть подпапкой и так далее; поэтому вы бы сделали что-то вроде com/oliveira/blah/blah. – sgbj
Предполагается, что это 'com.oliveira.ux' является веб-ссылкой или ссылкой на путь пакета. Если это путь, его не следует разделять '.', но'/' – MadProgrammer