Java - poner una imagen en jButton

 
Vista:

poner una imagen en jButton

Publicado por egoitz (35 intervenciones) el 24/07/2009 11:24:36
Hola buenas tengo este codigo para poner una imagen en un boton. la imagen esta en la ruta que le doy y me da un error que os lo especifico mas adelante

aqui el codigo que uso:

public class Frame1 extends JFrame {

ImageIcon theIcon = new ImageIcon(this.getClass().getResource("C:/imagenes/refrescar.gif"));
private JButton jButton1 = new JButton("refrescar",theIcon);


public Frame1() {
try {
jbInit();
} catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {
this.getContentPane().setLayout( null );
this.setSize( new Dimension(400, 300) );
jButton1.setBounds(150,150,100,50);
this.getContentPane().add(jButton1, null);
this.setVisible(true);
}
}

aqui el error que da

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:138)
at pruebaimpresion.Frame1.<init>(Frame1.java:11)
at pruebaimpresion.Class1.main(Class1.java:5)
Process exited with exit code 1.

he probado en ponerlo de muchas formas distintas y el error es siempre el mismo,

muchas gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:poner una imagen en jButton

Publicado por James (207 intervenciones) el 24/07/2009 16:29:03
Pues tienes dos errores visibles, primero no debes inicializar una variable haciendo referencia a "this" antes de que dicho objeto exista, en otras palabras estas inicilaizando mal el imageIcon, deberias inicializar en el constructor, o en su defecto llamar usando el nombre de la clase en lugar de "this", por otro lado al usar getResource obtines el path de donde estan los recursos del programa, es decir debes poner rutas relativas, si quieres llamar a la imagen desde su ruta absoluta como lo haces no es necesario pones getResource, prueba cambiar las cosa que te digo si aun falla lo posteas a ver que puede ser, Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar