Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    getResourceAsStream

    Perche' questa chiamata

    codice:
    button.setIcon(new ImageIcon((Image) ImageIO.read(this.getClass().getResourceAsStream("/" + imageName))));
    funziona su mac os e linux invece su windows xp fallisce?
    In particolare sembra che getResourceAsStream ritorni null e quindi la read lancia una nullpointerexception.
    imageName e' tipo "info.png" e il png sta nella root del jar file.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254

    Re: getResourceAsStream

    Originariamente inviato da mxa
    codice:
    button.setIcon(new ImageIcon((Image) ImageIO.read(this.getClass().getResourceAsStream("/" + imageName))));
    Il cast a Image non serve (BufferedImage è-un Image) e nemmeno il 'this'.

    Comunque potresti anche passare un URL (da getResource()) alla read() oppure (se non hai bisogno delle funzionalità di ImageIO) anche più semplicemente passare l'URL a ImageIcon.

    Originariamente inviato da mxa
    funziona su mac os e linux invece su windows xp fallisce?
    In particolare sembra che getResourceAsStream ritorni null e quindi la read lancia una nullpointerexception.
    imageName e' tipo "info.png" e il png sta nella root del jar file.
    Mi pare strano .... se la specifica è "/info.png" e info.png è alla "radice" da qualche parte lungo il classpath non ci dovrebbero essere problemi.

    Per curiosità, se fai:

    System.out.println(getClass().getResource("/info.png"));

    che cosa stampa??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    mi stampa:
    codice:
    jar:file:/C:/users/nomds/nomds/explore/DisserviceDemoGUI/target/DisserviceDemoGui-1.0.jar!/info.png
    credo sia corretto.

    quando listo il contenuto del jar info e' nella root.
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da mxa
    credo sia corretto.
    Infatti lo è ... e quindi la "risorsa" la trova perfettamente. E ripeto che mi pare molto strano che con getResourceAsStream() invece non la trovi.

    Mal che vada .... usa l'URL, ovvero il getResource() come ho indicato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    Originariamente inviato da andbin
    Mal che vada .... usa l'URL, ovvero il getResource() come ho indicato.
    Posso usare ImageIO.read(URL url) anche se il rispettivo file puntato dall'URL sta dentro un jar file?
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da mxa
    Posso usare ImageIO.read(URL url) anche se il rispettivo file puntato dall'URL sta dentro un jar file?
    Certo, ovviamente! Un URL è quello che "nasconde" di più la vera natura della "risorsa" ... potrebbe essere su http://.... o su file://.... o su jar:file:/.... o altro. Ma tutto questo è trasparente a chi usa l'URL. ImageIO.read() si limita solo ad invocare openStream() sul URL in modo da ottenere guarda caso .... un InputStream! Ma dove/come debba leggere questo InputStream è a carico del "gestore" del protocollo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    Ho fatto col getResource ma sempre ho lo stesso problema. Del resto me lo aspettavo.
    La cosa curiosa e' che qualche riga piu' in alto nel codice faccio questo:
    codice:
    setIconImage((Image) ImageIO.read(this.getClass().getResourceAsStream("/icon.png")));
    e li' non mi ritorna un'eccezione!
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

  8. #8
    mistero (quasi) risolto. Ho provato a decomprimere il jar file e alcune delle immagini che cercavo di caricare come icone non risultavano leggibili in windows. Sono png che scaricai da kde-look.org, magari quello e' il problema
    max

    Silence is better than bullshit.
    @mmarcon
    jHERE, Maps made easy

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 © 2024 vBulletin Solutions, Inc. All rights reserved.