Domanda

Ho aggiunto un'immagine per il mio pulsante,ma quando ho eseguito questo frame questa eccezione viene generata .perché?si prega di aiutare me.

init:

deps-jar:
compile-single:
run-single:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
        at ClientGUI.IdAndPasswordFrame.initComponents(IdAndPasswordFrame.java:91)
        at ClientGUI.IdAndPasswordFrame.<init>(IdAndPasswordFrame.java:22)
        at ClientGUI.IdAndPasswordFrame$4.run(IdAndPasswordFrame.java:200)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
BUILD SUCCESSFUL (total time: 1 second)

linea 138:

public ImageIcon (URL location) {
    this(location, location.toExternalForm());
}

line91:

 jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Images/yahoo_1.gif"))); // NOI18N

Io uso questa povera di controllo (Peter Lang raccomandato)che di Sistema.out.println(getClass().getResource("/Images/yahoo_1.gif"));e restituisce null,perché?si prega di aiutare me.

È stato utile?

Soluzione

Questo significa, che i rendimenti getClass().getResource("/Images/yahoo_1.gif") null.

JavaDoc afferma che questo accade se

  

la risorsa non poteva essere trovato o l'invoca non dispone di privilegi sufficienti per ottenere la risorsa.

  1. controllare se getResource torna davvero null:
    System.out.println(getClass().getResource("/Images/yahoo_1.gif"));

  2. Assicurarsi che il percorso sia corretto e che è nel classpath.

Modifica :

Ho appena provato con NetBeans. Ho creato la seguente struttura

Source Packages
  Images
    yahoo_1.gif

e il tuo codice ha funzionato bene. Questa è la tua struttura?

Prova a fare clic destro sulla vostra applicazione e selezionare Clean and Build.

Altri suggerimenti

Per risolvere questo problema, le immagini devono essere copiati nella bin directory -. Non in src directory

In caso contrario si otterrà nulla tutto il tempo su getClass (). GetResource ( "image.png") . Il percorso è non nullo ed è possibile impostarla come sopra -. Solo se si copiano le immagini che è necessario all'interno della directory binario, in cui si trovano i file .class per il progetto

Questo risolto il problema. Fatemi sapere se mi ha aiutato in questo.

Ioana

Sembra che getClass().getResource("/Images/yahoo_1.gif") rendimenti null vale a dire il .gif non può essere trovato sul classpath. (Immagini contro le immagini forse?)

L'URL viene passata in è nulla da questa linea:

getClass().getResource("/Images/yahoo_1.gif")

Dalla documentazione JDK:

  

[getResource (..) restituisce] Un oggetto URL per la lettura della risorsa,   oppure null se la risorsa non poteva essere   trovati o l'invoca non ha   privilegi sufficienti per ottenere il   risorsa

Forse volevi dire ( "Images / yahoo_1.gif") - vale a dire il percorso relativo non assoluto

Ho avuto lo stesso problema.Che cosa ha funzionato per me è stato:

  1. Guardare il file jar o nella cartella bin(quello con .i file di classe) e vedere il percorso dell'immagine.
  2. Voce di elenco
private class HandlerClass implements ActionListener{
        public void actionperformed(ActionEvent event){
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
        }

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top