Foro de elhacker.net

Programación => Java => Mensaje iniciado por: JenselG en 14 Abril 2018, 02:05 am



Título: modificar el acceso de un componente en eclipse
Publicado por: JenselG en 14 Abril 2018, 02:05 am
hola a todos, tengo un serio problema al que no le he encontrado solucion: En eclipse tengo un JFrame con sus componentes, necesito acceder a un JLabel desde otra clase pero no puedo. ¿Como puedo modificar el acceso al los componentes del JFramel?
PD: no uso netbeans porque se bugea y se cierra solo. Gracias


Título: Re: modificar el acceso de un componente en eclipse
Publicado por: srWhiteSkull en 15 Abril 2018, 14:31 pm
Por su referencia, siempre que vayas a modificar un componente dinámicamente en tiempo de ejecución ten su referencia a mano. Java funciona así, por referencia. Una referencia no es una copia del objeto, es como un puntero, es el objeto en si, todo lo que hagas con la referencia se refleja en el objeto.

Ejemplo :

Código:
MiObjeto referencia=new MiObjeto();

MiObjeto otraReferencia = referencia;

MiObjeto nuevaReferencia = otraReferencia;

nuevaReferencia.metodo(1); // sigue siendo "referencia" (el que instanciamos al principio)

Para no perder la referencia podemos ayudarnos de clases estáticas o pasar la referencia por parámetro a un método como por ejemplo un constructor, etc... También podemos obtener la referencia por medio de funciones como getComponents() pero es una forma engorrosa y poco eficiente en términos de rendimiento.

https://docs.oracle.com/javase/8/docs/api/java/awt/Container.html#getComponents--
http://www.java2s.com/Code/Java/Swing-JFC/GettingtheChildComponentsofaContainer.htm

PD La referencia se mantiene viva mientras el ámbito donde fuera asignada no sea destruido. Si declaramos una variable en un ámbito local que toma la referencia de un objeto, dicha referencia podrá usarse dentro del ciclo de vida de esa variable.