bueno, en el constructor, donde funciona, tienes una variable local al metodo PanelDado p1 y le haces un new. Dentro de Manejador usas p1, pero p1 no es visible desde ahí, ya que p1 es local al constructor y sólo se ve en el constructor.
Como te compila, supongo que la lcase Interfaz tiene en algún sitio un atributo p1 al que no le haces un new y ese es el que estás viendo dentro del Manejador Tirada
Código java:
Ver originalpublic class Interfaz
extends JFrame{ ...
PanelDado p1; // Seguramente tienes uno de estos que no inicializas.
...
public Interfaz(){
...
PanelDado p1 = new PanelDado();
panel.add(p1);
p1.setImg(); //Funciona
...
tirar.addActionListener(new ManejadorTirada());
}
p1.setImg(); //No Funciona, es donde lanza la excepción
}
}
}
para arreglarlo, quita el tipo PaneDado del constructor (deja el p1=new PanelDado()
Código java:
Ver originalpublic class Interfaz
extends JFrame{ ...
PanelDado p1; // Seguramente tienes uno de estos que no inicializas.
...
public Interfaz(){
...
p1 = new PanelDado(); // Déjalo así, sin el tipo delante.
panel.add(p1);
p1.setImg(); //Funciona
...
tirar.addActionListener(new ManejadorTirada());
}
p1.setImg(); //No Funciona, es donde lanza la excepción
}
}
}
Se bueno.