Ikony w *.jar i ResourseManger JAVA

0

Witam!!

mam taką przykładową linię kodu:

labelPobieranie.setIcon(new ImageIcon(Main.class.getResource("ikony/ico.png"))); 

sama ikonka siedzi w pakage nazwa_aplikacji.ikony i nazywa się oczywiście ico.png.

W NetBeansie to działa, wyświetla poprawnie. Problem się zaczyna przy uruchomieniu distro. Krótko - brak ikon.
Sprawdziłem główny plik jar aplikacji, i są tam ikony w katalogu ikony.
Sprawdziłem też jaka jest różnica w zwracanych ścieżkach przez getResource:

odpalane w NB: file:/Z:/.../ikony/ico.png
odpalane z JAR: jar/Z:/.../ikony/ico.png

użycie czegoś w stylu (google hit)

getClass().getClassLoader().getResourceAsStream("Icons/picture.png")

nie załatwia sprawy, a wręcz odwrotnie, wszytko przestaje działać w nb i distro (null pointer exception)

       Image ikona = ImageIO.read(Main.class.getResourceAsStream("ikony/ico.png"));
       labelListy.setIcon(new ImageIcon(ikona));

Tutaj identyczny efekt, działa z NB, odpalane z jarka już nie działa.

Z góry dziękuję za pomoc!

wg http://download.oracle.com/javase/tutorial/uiswing/components/icon.html to powinno działać. Podejrzewam więc, że będzie trzeba coś wyklikać w NB

0

podawaj ścieżki z "/" na początku

0
Kerai napisał(a)

podawaj ścieżki z "/" na początku
W takim przypadku getResource pluje nullem;

0

Ja to tam robię tak:

new ImageIcon("BEZWZGLĘDNA ŚCIEŻKA DO PLIKU");

Wszystko działa, w NetBeans, w jarze też, nawet jak go przesunę czy wyślę na innego kompa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1