Intellij - utworzenie pliku jar z obrazkami

0

Napisałam aplikację w swingu, w której chcę wyświetlać ikony na przyciskach. Mam mały problem z utworzeniem pliku jar, który używa dodatkowych plików.
Oznaczyłam folder resources jako resources root. Pliki otwieram w ten sposób:

        FileInputStream fis = new FileInputStream((this.getClass().getResource("/add.png")).getFile());
        Image add = ImageIO.read(fis);
        dodajButton.setIcon(new ImageIcon(add));

Używam intellij idea.
I nie wiem jak to rozwiązać, siedzę nad tym już trochę, ale niestety bezskutecznie.

1

Pytasz jak to zbudować odpowiednio? Jeśli to maven to nie kombinuj tylko zrób katalog java/src/resources i tam wrzuć te obrazki i samo sie odpowiednio spakuje.

0

Tak o to pytam, a mavena nie używam niestety. Da radę to zrobić bez tego?

0

Dodam jeszcze, że te pliki są w tym jarze po tym jak oznaczyłam katalog resources jako resources root. Jednak kiedy próbuje się do nich odwołać tak jak pisałam wyżej, to nie działa

0

Rób prościej: używaj
this.getClass().getResourceAsStream("/add.png")
i tak uzyskany InputStream przekazuj do ImageIO. (pomijając FIle i inne dziwolągi które wewnątrz .jar nie bardzo działają).
(see https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(java.io.InputStream))

(zresztą getResouce daje URL, który też jest akceptowany przez ImageIO. Polecam korzystać z InputStream - bo to prosty i najbardziej ogólny typ).

0
jarekr000000 napisał(a):

Rób prościej: używaj
this.getClass().getResourceAsStream("/add.png")
i tak uzyskany InputStream przekazuj do ImageIO. (pomijając FIle i inne dziwolągi które wewnątrz .jar nie bardzo działają).
(see https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(java.io.InputStream))

(zresztą getResouce daje URL, który też jest akceptowany przez ImageIO. Polecam korzystać z InputStream - bo to prosty i najbardziej ogólny typ).

Dzięki!!! Działa :)

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