PDA

Visualizza la versione completa : [Java] Visualizzazione icone


sersul
15-07-2004, 13:33
Voglio visualizzare una icona e faccio i seguenti comandi:

String path = "../../icon/chess.gif"; //risale di due directory da dove si trovano i .class ed entra in chess
java.net.URL iconURL = game.GameAWT.class.getResource(path);
ImageIcon icon = new ImageIcon(iconURL);

Quando compilo mi da il seguente errore

java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
at game.GameAWT.<init>(GameAWT.java:102)
at game.GameAWT.main(GameAWT.java:281)

Come se il file non lo trovasse. Infatti se faccio

String path = "chess.gif";
...

mettendo il file chess.gif nella directory che contiene i .class tutto funziona. Come mai questo? Come posso rendere la locazione del file indipendente dalla piattaforma ed indipendente dall'editor che uso?

Ciao a tutti,

sersul.

LeleFT
15-07-2004, 15:54
Il problema non che non trova l'immagine, ma che l'oggetto, probabilmente l'URL, nullo. Se non hai a che fare con un'applet, puoi semplicemente evitare l'uso delle URL, altrimenti ricontrolla che questo sia corretto. La classe ImageIcon, infatti, consente l'uso di un costruttore di questo tipo:


public ImageIcon(String path)

L'indipendenza dala piattaforma ce l'hai gi in quanto puoi tranquillamente usare lo slash ( / ) al posto del backslash ( \ ) anche su piattaforma Windows.

Ciao. :ciauz:

sersul
15-07-2004, 16:23
Con ImageIcon(String) non funziona o meglio non mi visualizza niente anche se compila senza errore.

Quello che non mi spiego che con

game.GameAWT.class.getResource(image/chess.gif);
e
game.GameAWT.class.getResource(../image/chess.gif);
tutto funziona. Quando invece scrivo
game.GameAWT.class.getResource(../../image/chess.gif);
in compilazione mi da quel famoso errore nullPointer...

Anche se in tutti e tre i casi il file c'.

Perch il ../../ lo fa andare in bambola?

LeleFT
15-07-2004, 16:28
Non saprei... per caso hai usato i packages? Forse in quel modo esci dal package e questo potrebbe creare dei problemi... la st buttando l come ipotesi, non ho mai verificato.


Ciao. :ciauz:

Loading