Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di sersul
    Registrato dal
    Feb 2003
    Messaggi
    75

    [Java] Visualizzazione icone

    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.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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:
    codice:
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di sersul
    Registrato dal
    Feb 2003
    Messaggi
    75
    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?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    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.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.