Foros del Web » Programación para mayores de 30 ;) » Java »

e.getSource?

Estas en el tema de e.getSource? en el foro de Java en Foros del Web. Hola amigos llevo todo el dia intentando encontrar el error de porque no funciona el boton como deberia, pongo el codigo: public class Boton extends ...
  #1 (permalink)  
Antiguo 24/11/2011, 07:41
 
Fecha de Ingreso: octubre-2011
Mensajes: 90
Antigüedad: 12 años, 6 meses
Puntos: 1
e.getSource?

Hola amigos llevo todo el dia intentando encontrar el error de porque no funciona el boton como deberia, pongo el codigo:

public class Boton extends JFrame implements ActionListener {

public Boton(){
super("MI VENTANA");
setSize(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JButton boton1;
JButton boton2;

boton1 = new JButton("ACEPTAR");
boton2 = new JButton("CANCELAR");


FlowLayout s = new FlowLayout();
setLayout(s);
add(boton1);
add(boton2);

setVisible(true);

boton1.addActionListener(this);
boton2.addActionListener(this);
}

public void actionPerformed(ActionEvent e){

if (e.getSource()==boton1)

System.exit(0);

cuando Pulso el boton no se ejecuta lo que esta en el metodo actioPerformed, lo raro es que si cambio eso por: System.out.println("funciono") si funciona, no me evalua el if (e.getSource()==boton1) y no se el porque por mas vuelta que le doy, gracias y un saludo.
  #2 (permalink)  
Antiguo 24/11/2011, 07:50
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: e.getSource?

Buenas:

Código java:
Ver original
  1. public Boton(){
  2.    super("MI VENTANA");
  3.    setSize(400,300);
  4.    setDefaultCloseOperation(EXIT_ON_CLOSE);
  5.    JButton boton1;
  6.    JButton boton2;

Las variable boton1 y boton2 son locales al método (constructor supongo) Boton(). Por ello, NO son accesibles desde el actionPerformed. Seguramente como atributo de la clase tienes definida otra variable boton1.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 24/11/2011, 08:03
 
Fecha de Ingreso: octubre-2011
Mensajes: 90
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: e.getSource?

Amigo no tengo definidias mas variables boto1 y boton2, solo las que estan en el constructor, y porque no son accesible? creo que deberia de funcionar, en fin gracias y espero tu respuesta.saludos.

Arreglado amigo, saque las variables del constructor y ya funciona el codigo, gracias y un saludo.
  #4 (permalink)  
Antiguo 24/11/2011, 08:13
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: e.getSource?

la variable "JButton boton1" la estas declarando como local en el constructor, tenes que declararla fuera del constructor.

El codigo seria así:

public class Boton extends JFrame implements ActionListener {
//las declaras en la clase y no dentro del constructor

private JButton boton1;
private JButton boton2;


public Boton(){
super("MI VENTANA");
setSize(400,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
boton1 = new JButton("ACEPTAR");
boton2 = new JButton("CANCELAR");


FlowLayout s = new FlowLayout();
setLayout(s);
add(boton1);
add(boton2);

setVisible(true);

boton1.addActionListener(this);
boton2.addActionListener(this);
}

public void actionPerformed(ActionEvent e){

if (e.getSource()==boton1)

System.exit(0);
  #5 (permalink)  
Antiguo 24/11/2011, 08:15
 
Fecha de Ingreso: octubre-2011
Mensajes: 90
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: e.getSource?

Gracias, ya esta arreglado,saludos.
  #6 (permalink)  
Antiguo 24/11/2011, 08:19
Avatar de afrika026  
Fecha de Ingreso: junio-2011
Mensajes: 85
Antigüedad: 12 años, 10 meses
Puntos: 19
Respuesta: e.getSource?

comenta si encontrastes la solucion con mi explicación o sino como lo solucionastes...
  #7 (permalink)  
Antiguo 24/11/2011, 08:27
 
Fecha de Ingreso: octubre-2011
Mensajes: 90
Antigüedad: 12 años, 6 meses
Puntos: 1
Respuesta: e.getSource?

Si amigo, lo solucione sacando y declarando las 2 variables fuera del constructor como bien decis. gracias de nuevo.

Etiquetas: jframe
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:44.