Problema con Swing

di il
2 risposte

Problema con Swing

Buongiorno, apro questo argomento per chiedere un aiuto per quanto riguarda la grafica in Java.
In pratica, sto creando una sorta di videogioco e vorrei far apparire una finestra iniziale di benvenuto contenente una JLabel e dei tasti per permettere all'utente di interagire.
Il problema sorge nella JLabel: essa è stata inserita per contenere un'immagine, ma al momento dell'esecuzione mi dà la seguente eccezione e non mi dà nulla in output:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
	at java.desktop/javax.swing.ImageIcon.<init>(ImageIcon.java:217)
	at graphics.menu.initComponents(menu.java:55)
	at graphics.menu.<init>(menu.java:17)
	at graphics.menu$2.run(menu.java:140)
Cercando di risolvere il problema, ho capito che l'errore è causato dal percorso, pur essendo giusto:
 jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/img/logo.png")));
Qualcuno saprebbe aiutarmi?
Sto usando NetBeans ed il codice per la grafica viene generato in automatico dell'IDE mentre creo il design, per quello son sicura che il percorso è giusto. Sto forse sbagliando la posizione della cartella resources (sta dentro a src/main/java) ?

2 Risposte

  • Re: Problema con Swing

    Whalien52 ha scritto:


     jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/img/logo.png")));
    Qualcuno saprebbe aiutarmi?
    Sto usando NetBeans ed il codice per la grafica viene generato in automatico dell'IDE mentre creo il design, per quello son sicura che il percorso è giusto. Sto forse sbagliando la posizione della cartella resources (sta dentro a src/main/java) ?
    La questione è che in "/resources/img/logo.png" lo slash / indica "alla radice in classpath" (e il package della classe dal getClass() NON conta).

    Se il progetto è basato su Maven/Gradle (quindi struttura: src/main/java, src/test/java, src/main/resources, ecc...) allora conviene che scrivi:

    getResource("/img/logo.png")

    e metti la immagine in:

    src/main/resources/img/logo.png

    P.S. ma se vuoi puoi anche rendere la specifica "relativa" al package della classe.
  • Re: Problema con Swing

    Grazie mille! Ora funziona
Devi accedere o registrarti per scrivere nel forum
2 risposte