Programación General > Java
Duda Con Swing
escape:
hola, tengo una aplicación realizada en swing. De la siguiente forma:
--- Código: Text ---public class Aplicacion extends JFrame{ private JButton a; private JButton b; public static void main(String[] args) { new Aplicacion(); } public Aplicacion() { // aqui todo el codigo del constructor // que genera la interfaz. // Con estos botones tengo problema: Interna o = new Interna(); a = new JButton("jugar"); a.addActionListener(o); b = new JButton("resultado"); b.addActionListener(o); } // a continuacion una clase interna que // maneja los eventos private class Interna implements ActionListener { public void actionPerformed(ActionEvent e) { if(e.getSource() == a) { // se hace algo } if(e.getSource() == b) { // este codigo jamás lo ejecuta // es como si no existiera // ¿por qué? }}}
La situación es que el "botón b" a pesar de tener registrado un listener no gatilla ninguna acción. Sin embargo, si cambio
if(b.getSource() == "b") por un simple "else", el boton b si gatilla la acción...¿por qué?. Gracias.
escape:
como nadie va a tener una sugerencia????
su -:
No se de Java, pero normalmente == se usa para comparar numeros, intenta usar eq:
http://java.sun.com/j2se/1.5.0/docs/api/ja...ment/Query.html
Si no es asi... ni idea.
silverfox:
Hola...
Completamente cierto, su...
Para comparar dos objetos, necesitas usar Object.equals().
Mira si te funciona con eso.
Un saludo.
Silverfox
escape:
a pesar de ser cierto que el operador == no se utiliza para comparar instancias, esto es efectivo siempre y cuando se desee comparar el contenido de los objetos. De todas formas, el problema no pasaba por eso, sino que por un error mio al codificar dos variables con el mismo nombre, una en la clase externa y la otra dentro de la interna. Gracias.
Navegación
[#] Página Siguiente
Ir a la versión completa