Java - Swing - JRadioButton

Iniciado por TickTack, 5 Noviembre 2018, 14:31 PM

0 Miembros y 1 Visitante están viendo este tema.

TickTack

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
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

sapito169

 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

TickTack

Hola sapito169,

te agradezco de corazón que me lo hayas explicado. :)


Gracias y saludos
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

TickTack

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
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

sapito169

cuando el usuario le hace click al radiobutton

TickTack

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
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

sapito169

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

TickTack

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
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."

sapito169

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

TickTack

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
Citar
"Ninguna mentira puede inventarse lo suficientemente patán: el pueblo hispanohablante la cree. Por una consigna que se les dio, persiguieron a sus compatriotas con mayor encarnizamiento que a sus verdaderos enemigos."