Temat: W jaki sposób odczytać ikonę z zasobów?

Niby proste, ale getResource czy getResourceAsStream nie działają. Mogę utworzyć ikonę podając jej ściężkę do pliku :

ImageIcon folderIcon = new ImageIcon("d:\\code\\proj.git\\Ikony\\folder16.png");

Natomiast

InputStream in = getClass().getClassLoader().getResourceAsStream("/folder16.png");

daje in==null (bez / na początku też próbowałem)

URL url = getClass().getClassLoader().getResource("/folder16.png");

też daje null
Plik folder16.png wrzuciłem do katalogu projektu.
Piotr Płaczek

Piotr Płaczek Student, Uniwersytet
Łódzki

Temat: W jaki sposób odczytać ikonę z zasobów?

Starasz się pobrać z zasobów projektu coś czego w tych zasobach nie ma. Jeśli już koniecznie nie chcesz trzymać plików z zasobami w "src/main/resources/" stwórz jakiś katalog w katalogu głównym projektu, przenieś tam plik folder16.png i w konfiguracji projektu oznacz nowo utworzony katalog jako zasoby projektu, wtedy po zbudowaniu projektu pobierzesz go tak:
InputStream in = getClass().getClassLoader().getResourceAsStream("folder16.png");


Jeśli jesteś ciekaw skąd wcześniej pobierałeś plik podejrzyj sobie jaka ścieżka zostanie zwrócona tutaj:
this.getClass().getClassLoader().getResource("").getPath();

tam powinien być Twój plik abyś mógł go pobrać w powyższy sposób :)

konto usunięte

Temat: W jaki sposób odczytać ikonę z zasobów?

Za pomocą przedstawionych metod getResource...() można pobrać tylko te zasoby, które znajdują się w classpath-ie.
Jeśli pakujesz ten projekt do JARa, to zwróć uwagę na dwie rzeczy:
- zasoby które chcesz wyciągnąć też muszą się znajdować w archiwum (być może lądują tam jedynie pliki .class)
- pobranie zasobu za pomocą metody getResource().getPath() zwróci ścieżkę wewnątrz JAR-a, więc nie uda się go odczytać wykorzystując java.io.File, trzeba będzie wcześniej zapisać strumień uzyskany z getResourceAsStream()



Wyślij zaproszenie do