Ver Mensaje Individual
  #7 (permalink)  
Antiguo 14/07/2011, 13:42
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Excepción al pulsar JButton

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 original
  1. public class Interfaz extends JFrame{  
  2.         ...
  3.         PanelDado p1;  // Seguramente tienes uno de estos que no inicializas.
  4.     ...
  5.     public Interfaz(){
  6.         ...
  7.         JPanel panel = new JPanel();
  8.         panel.setLayout(new GridLayout(0,2));
  9.         PanelDado p1 = new PanelDado();
  10.         panel.add(p1);
  11.         p1.setImg(); //Funciona
  12.         ...
  13.         tirar.addActionListener(new ManejadorTirada());
  14.     }
  15.  
  16.     class ManejadorTirada implements ActionListener{
  17.         public void actionPerformed(ActionEvent e){
  18.             p1.setImg(); //No Funciona, es donde lanza la excepción
  19.         }
  20.     }
  21. }

para arreglarlo, quita el tipo PaneDado del constructor (deja el p1=new PanelDado()

Código java:
Ver original
  1. public class Interfaz extends JFrame{  
  2.         ...
  3.         PanelDado p1;  // Seguramente tienes uno de estos que no inicializas.
  4.     ...
  5.     public Interfaz(){
  6.         ...
  7.         JPanel panel = new JPanel();
  8.         panel.setLayout(new GridLayout(0,2));
  9.         p1 = new PanelDado();       // Déjalo así, sin el tipo delante.
  10.         panel.add(p1);
  11.         p1.setImg(); //Funciona
  12.         ...
  13.         tirar.addActionListener(new ManejadorTirada());
  14.     }
  15.  
  16.     class ManejadorTirada implements ActionListener{
  17.         public void actionPerformed(ActionEvent e){
  18.             p1.setImg(); //No Funciona, es donde lanza la excepción
  19.         }
  20.     }
  21. }

Se bueno.
__________________
Apuntes Java
Wiki de Programación