Глядя на исходный код URLImageSource, выясняется, что причина, по которой getConnection
выбрасывает NPE, заключается в том, что у него есть null
для URL.И это заставляет меня подозревать, что
getClass().getResource("/src/images/icon.jpg")
возвращает null
.Он сделал бы это, если бы не смог найти ресурс с таким путем.
Могу поспорить, что проблема в том, что вы ошиблись в пути.
Чтобы доказать или опровергнуть это, вы должнызапустите jar tvf
в файле JAR и найдите строку, соответствующую "icon.jpg"
.Соответствующий путь совпадает с тем, который вы используете?Если нет, используйте путь из соответствующей строки в вызове getResource
, и он должен работать.В качестве альтернативы, если файл вообще не отображается, посмотрите на конфигурации сборки NetBeans, в которых указано, что помещать в файл JAR.(Я не пользователь NetBeans, поэтому не могу сказать, куда вам нужно заглянуть ...)
Если это вас ни к чему не приведет, другая возможность состоит в том, что getClass().getResource(...)
используетзагрузчик классов, который не знает о файле JAR, содержащем изображение.(Это кажется мне невероятным ...)