Foro de elhacker.net

Programación => Java => Mensaje iniciado por: TickTack en 5 Noviembre 2018, 14:31 pm



Título: Java - Swing - JRadioButton
Publicado por: TickTack en 5 Noviembre 2018, 14:31 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 8 Noviembre 2018, 22:11 pm
 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


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 9 Noviembre 2018, 19:21 pm
Hola sapito169,

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


Gracias y saludos


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 11 Noviembre 2018, 17:31 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 14 Noviembre 2018, 00:00 am
cuando el usuario le hace click al radiobutton


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 14 Noviembre 2018, 14:05 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 14 Noviembre 2018, 22:39 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 15 Noviembre 2018, 14:45 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 15 Noviembre 2018, 15:25 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: 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


Título: Re: Java - Swing - JRadioButton
Publicado por: rub'n en 16 Noviembre 2018, 18:41 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 ChangeListener

ya sapito de esta aburrido de responder eso jajaja

con interfaces es una manera mas de herencia


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 16 Noviembre 2018, 19:08 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 16 Noviembre 2018, 20:46 pm
Hola rub'n,

Código:
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


Título: Re: Java - Swing - JRadioButton
Publicado por: rub'n en 16 Noviembre 2018, 20:53 pm
Hola rub'n,

Código:
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


Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 16 Noviembre 2018, 22:05 pm
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


Título: Re: Java - Swing - JRadioButton
Publicado por: sapito169 en 17 Noviembre 2018, 03:04 am
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





Título: Re: Java - Swing - JRadioButton
Publicado por: TickTack en 17 Noviembre 2018, 12:16 pm
Hola sapito169,

muchas gracias por tus explicaciones. Eso es información valiosa.

Gracias y saludos