Hola,
tengo dos dudas:
1) Que hace el metodo addChangeListener de la clase JRadioButton (con el objeto que llega como parámetro)?
2) Cuando se implementa por ejemplo la interface ChangeListener... cómo sabe el programa que cuando se hace click en un control visual de tipo JRadioButton debe llamar al metodo stateChanged de la clase que implementa la interfaz? Lo gestiona Eclipse eso?
Gracias y saludos
Que hace el metodo addChangeListener de la clase JRadioButton (con el objeto que llega como parámetro)?
lo guarda en una lista(arreglo de objetos) para ser vuelto a llamar cuando sea necesario
Cuando se implementa por ejemplo la interface ChangeListener... cómo sabe el programa que cuando se hace click en un control visual de
tipo JRadioButton debe llamar al método stateChanged de la clase que implementa la interfaz?
lo sabe por que asi lo programa algún desarrollador de sun usan el patron de diseño observer
Lo gestiona Eclipse
eclipse solo sirve para dar una falsa sensacion a los noobs y wanabes de que puede programar
Hola sapito169,
te agradezco de corazón que me lo hayas explicado. :)
Gracias y saludos
Hola de nuevo, sapito169,
creí no te tendría mas dudas. Pero tengo una más: vos me escribiste que el metodo addChangedListener guarda el objeto que le llega como parametro en una lista para ser vuelto a llamar cuando sea necesario. Pero cuando es necesario llamar a ese objeto?
Gracias y saludos
cuando el usuario le hace click al radiobutton
Hola sapito169,
pero yo crei que cuando el usuario hace click al radiobutton se llama al metodo stateChanged.
A lo que me refiero: Porque hace falta llamar al metodo addChangeListener pasandole como parametro un objeto si (como lo entendi de vos) Eclipse ya gestiona eso y si ya se pospone al nombre de la clase la palabra implements?
Gracias y saludos
eclipse no tiene nada que ver
tienes que pasarle un objeto por que asi funciona el patron de diseño observador
y se le pasa un objeto entero debido a que java en las versiones anterirores a la 8 a los metodos solo puedes pasarle objetos no hay forma de pasar como parametros a metodos
Hola sapito169,
si tengo que llamar al metodo addChangeListener pasandole como parametro un objeto... porque tengo que escribir despues del nombre de la clase la palabra clave implements?
Gracias y saludos
1 para que el compilador te oblige a que escribas el cuerpo de metodo a implementar
2 por que cuando escribieron el metodo addChangeListener lo hicieron asi
addChangeListener(ChangeListener l){
....
}
dale una repasada a lo que son las clases e interfaces y como se usan y tambien a los inner clases
Hola sapito169,
muchas gracias por tu aporte.
Imaginemos que la clase que implementa la interface ChangeListener se llama Formulario. Se puede entonces decir que cuando llamamos al metodo addChangeListener le pasamos un objeto que era tipo Formulario y tipo ChangeListener?
Gracias y saludos
Cita de: TickTack en 16 Noviembre 2018, 18:33 PM
Hola sapito169,
muchas gracias por tu aporte.
Imaginemos que la clase que implementa la interface ChangeListener se llama Formulario. Se puede entonces decir que cuando llamamos al metodo addChangeListener le pasamos un objeto que era tipo Formulario y tipo ChangeListener?
Gracias y saludos
si tal cual addChangeListener(this); xq Formulario es un ChangeListenerya sapito de esta aburrido de responder eso jajaja con interfaces es una manera mas de herencia
yo tengo paciencia para los que quieran mejorar
mas bien soy muy mala leche para los que se esfuerzan en ser lo mas brutos posible y luego tratan de hacer todo lo posible en embrutecer al resto
Hola rub'n,
si tal cual addChangeListener(this); xq Formulario es un ChangeListener
Ok. Entonces, si un objeto de la clase Formulario no es de tipo ChangeListener... como es que el compilador no me da error al pasar al metodo addChangeListener un objeto distinto al que en realidad espera recibir?
Gracias y saludos
Hola sapito169,
ves que estoy tratando de profundizar este tema? O mes ves como un bruto?
Saludos
Cita de: TickTack en 16 Noviembre 2018, 20:46 PM
Hola rub'n,
si tal cual addChangeListener(this); xq Formulario es un ChangeListener
Ok. Entonces, si un objeto de la clase Formulario no es de tipo ChangeListener... como es que el compilador no me da error al pasar al metodo addChangeListener un objeto distinto al que en realidad espera recibir?
Gracias y saludos
Hola sapito169,
ves que estoy tratando de profundizar este tema? O mes ves como un bruto?
Saludos
TickTack depende donde estés escribiendo tu código que lo mas seguro sea un ide, no creo que sea un .txt , por lo tanto en el .txt no daría error o excepción a menos que lo compiles El IDE usa Reflection para analizar el código en tiempo de ejecución o runtime, y con eso logra saber cosas que ha simple vista no vemos.
Reflection es la magia oculta en Java(bueno en realidad no tan oculta) que usan muchísimos framework para hacer cosas grandiosas :P
Hola rub'n,
muchisimas gracias por tu respuesta. De veras te agradezco de que hiciste que aprendiera algo nuevo: la existencia de Reflection.
Nuevamente gracias ;-) ;-) y saludos
bruto no es el que pregunta
burto es el que quiere embrutecer a gente inocente
Formulario implements ChangeListener{
....
addChangeListener(this);
....
}
el objeto es al mismo tiempo de tipo Formulario y de tipo ChangeListener
al momento de compilar el compilador procesa el codigo fuente y pasa por un montón de face de verificación y optimizacion (class loading) luego llena sus areas de memoria y luego entrega el control a el excution engine
la verificación se hace al momento de compilar en caso de pasar crear los ficheros .class y en caso de fallar el compilador te saca la lengua y te hace acordar lo mal que lo has echo y en que linea o lineas exacta y por que motivo o motivos fracasaste
el compilador es el que te dice si esta bien tu codigo fuente o si tu fuente vale lo mismo que las promesas de tu ex
reflexion solo funciona cuando el programa esta corriendo no al momento de compilar
Hola sapito169,
muchas gracias por tus explicaciones. Eso es información valiosa.
Gracias y saludos