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

No reconoce e.getSource()

Estas en el tema de No reconoce e.getSource() en el foro de Java en Foros del Web. Hola alguien por favor quien pueda ayudarme con este problema: Al momento que quiero identificar con qué boton hice click no lo encuentra java Les ...
  #1 (permalink)  
Antiguo 13/04/2017, 18:17
 
Fecha de Ingreso: septiembre-2010
Ubicación: Chiclayo
Mensajes: 17
Antigüedad: 14 años, 2 meses
Puntos: 1
Información No reconoce e.getSource()

Hola alguien por favor quien pueda ayudarme con este problema:
Al momento que quiero identificar con qué boton hice click no lo encuentra java
Les dejo el código:

Código Java:
Ver original
  1. class panel extends [B]JPanel[/B]{
  2.     private JButton btn1;
  3.     private JButton btn2;
  4.     public panel(){
  5.         controlador listener = new controlador();
  6.         btn2 = new JButton("Boton2");
  7.         btn1 = new JButton("Boton1");
  8.         btn1.addActionListener(listener);
  9.         btn2.addActionListener(listener);
  10.         add(btn1);
  11.         add(btn2);
  12.     }
  13.  
  14.     public JButton getBtn1() {
  15.         return btn1;
  16.     }
  17.  
  18.     public void setBtn1(JButton btn1) {
  19.         this.btn1 = btn1;
  20.     }
  21.  
  22.     public JButton getBtn2() {
  23.         return btn2;
  24.     }
  25.  
  26.     public void setBtn2(JButton btn2) {
  27.         this.btn2 = btn2;
  28.     }
  29.    
  30. }

Y la clase en donde implemento la interfaz:

Código Java:
Ver original
  1. public class controlador implements ActionListener{
  2.  
  3.     @Override
  4.     public void actionPerformed(ActionEvent e) {
  5.         panel p = new panel();
  6.         Object Fuente=e.getSource();
  7.    
  8.         if (Fuente==p.getBtn1()) {
  9.             System.out.println("Boton1---> "+p.getBtn1());    
  10.             System.out.println("Fuente---> "+Fuente);
  11.             System.out.println("son iguales");
  12.         }
  13.         else if(Fuente==p.getBtn2()){
  14.             System.out.println("Boton1---> "+p.getBtn2());    
  15.             System.out.println("Fuente---> "+Fuente);
  16.             System.out.println("No son iguales");
  17.         }else{
  18.             System.out.println("No son iguales");
  19.         }
  20.     }
  21. }

Siempre me arroja el mensaje "No son iguales y cuando reviso la consola efectivamente el texto se parece mucho pero no es el mismo"
Ojalá alguien que ya haya resuelto este inconveniente para que me pueda echar una mano.
  #2 (permalink)  
Antiguo 15/04/2017, 02:36
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: No reconoce e.getSource()

Buenas,

En java no se comparan lcon equals, no con== .

http://stackoverflow.com/questions/7...equals-in-java


Un saludo
__________________
If to err is human, then programmers are the most human of us
  #3 (permalink)  
Antiguo 17/04/2017, 03:36
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 16 años, 3 meses
Puntos: 188
Respuesta: No reconoce e.getSource()

Si son tipos primitivos puedes usar ==

Para comparar objetos es necesario usar el método equals, como indica Falken.

Por cierto cuidado con usar equals sobre un objeto que pueda ser null

Otro tema es la notacion. Empieza siempre en minúsculas para nombrar las variables porfi.

Por último te dejo un enlace que igual te ayuda a resolver tu otro problema, donde se recomienda el uso del método getActionCommand():

http://stackoverflow.com/questions/2...the-buttons-im
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Última edición por Fuzzylog; 17/04/2017 a las 03:45
  #4 (permalink)  
Antiguo 17/04/2017, 08:24
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 10 meses
Puntos: 52
Respuesta: No reconoce e.getSource()

Cita:
Iniciado por Profesor_Falken Ver Mensaje
Buenas,

En java no se comparan lcon equals, no con== .

http://stackoverflow.com/questions/7...equals-in-java


Un saludo
Que buen lenguaje. Son realmente admirables las decisiones de diseño del lenguaje java, que opta por ir en contra de lo que hacen casi todos los lenguajes modernos, y no permite comparar objetos con ==. Despues de todo, quien necesita operator overloading? eso es muy "confuso"... siempre es preferible la inconsistencia y la idiotez:

- para comparar "primitivos" (lo que sea que significa eso) se usa ==
- para comparar "objetos" se usa .equals()
- para sumar 2 enteros se usa +, siempre que no esten boxeados en Integer, porque los generics de java estan re bien diseñados, entonces no se puede hacer un List<int>, ni ningun generic sobre tipos primitivos, entonces se necesita boxear y desperdiciar memoria, que total es gratis (*), y si no me crees preguntale a los que hicieron el minecraft...
- para sumar 2 valores numericos de tipo BigDecimal se usa .add()

... Que buen lenguaje, los abogados y burocratas de oracle deben estar orgullosos.

(*) - Lo que no es gratis es la salud del pobre diablo que tiene que codear en java, pero bueno...

Última edición por agleiva; 17/04/2017 a las 08:33

Etiquetas: actionlistener
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 22:14.