Pregunta

He añadido una imagen para mi botón,pero al ejecutar el marco de esta excepción será lanzada .por qué?por favor me ayude.

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)

la línea 138:

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

line91:

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

Yo uso este pobre comprobación (Peter Lang recomendado)que es:el Sistema.a cabo.println(getClass().getResource("/Images/yahoo_1.gif"));y devuelve null, ¿por qué?por favor me ayude.

¿Fue útil?

Solución

Esto significa, que los rendimientos getClass().getResource("/Images/yahoo_1.gif") null.

JavaDoc afirma que esto ocurre si

  

el recurso no se ha encontrado o el invocador no tiene privilegios suficientes para obtener el recurso.

  1. comprobar si realmente getResource vuelve null:
    System.out.println(getClass().getResource("/Images/yahoo_1.gif"));

  2. Asegúrese de que la ruta es correcta y que está en la ruta de clases.

Editar

Sólo traté con NetBeans. He creado la siguiente estructura

Source Packages
  Images
    yahoo_1.gif

y su código funcionaba bien. Esta es su estructura?

Trate de hacer clic derecho en su aplicación y seleccione Clean and Build.

Otros consejos

Con el fin de solucionar este problema, las imágenes deben copiarse en el bin directorio -. No en src directorio

De lo contrario obtendrá nulo todo el tiempo en getClass (). GetResource ( "image.png") . El camino es no es nulo y se puede establecer que el anterior -. Sólo si copia las imágenes que usted necesita dentro del directorio binario, donde se encuentran los archivos .class para su proyecto

Esto fija el problema. Déjeme saber si he ayudado en esto.

Ioana

Parece que vuelve getClass().getResource("/Images/yahoo_1.gif") null es decir, el .gif no se puede encontrar en la ruta de clases. (Imágenes en comparación con las imágenes tal vez?)

La dirección URL que se pasa es nulo de esta línea:

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

A partir de la documentación del JDK:

[getResource(..) devuelve] UN objeto URL para leer el recurso, o null si el recurso no podía ser o el invocador no tiene privilegios adecuados para obtener la de recursos

Tal vez quisiste ("Images/yahoo_1.gif") - es decir,ruta de acceso relativa, no absoluta?

Yo tenía el mismo problema.Lo que funcionó para mí fue:

  1. Buscar en el archivo jar o en la carpeta bin(el uno con el .los archivos de clase) y ver la ruta de la imagen.
  2. Elemento de la lista
private class HandlerClass implements ActionListener{
        public void actionperformed(ActionEvent event){
            JOptionPane.showMessageDialog(null, String.format("%s", event.getActionCommand()));
        }

}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top