Foro sobre Java SE > Modificar un JLabel desde otra clase
Me temo que deberás implementar uno de dos: Observer Pattern o Publish and Subscribe Pattern
Para el Observer:
http://www.javaworld.com/javaworld/jw-03-2003/jw-0328-designpatterns.html
http://www.java2s.com/Code/Java/Design-Pattern/Observer-Pattern.htm
Para el Publish and Subscribe:
http://code.google.com/p/guava-libraries/wiki/EventBusExplained
http://eventbus.org/
He usado EventBus (el último de la relación anterior) a lo largo de varios años, y su facilidad de uso y eficacia son indiscutibles.
Guenas.
¿Porque no le pasas la clase Main a los hilos cuando los creas?
También puedes crear los hilos como una clase anidada de Main con lo que tendrán acceso a los miembros de esta.
Otra cosa que hay que tener en cuenta es que las clases de swing no deben ser alteradas desde un hilo que no sea el de swing o te puede hacer cualquier cosa rara. Usa SwingWorker o similares para hacerlo.
Salut,
Paposo
Gracias por vuestras respuestas. Finalmente he declarado en la clase UI que genera mi Frame, a los labels como:
private static JLabel label1 = new JLabel("Provincia");
Luego a la hora de crear mis hilos, le paso como parametros los que le pasaba antes mas uno nuevo mas que no es ni mas ni menos que la Label a modificar. Una vez corre el hilo, puedo setear en el Label de mi ventana UI sin problemas. Muchas gracias a los 2 y un saludo.
Buenas. Vendo del VB y creia que en Java seria parecido a como se hace en VB. La verdad llevo rato buscando la solucion y no me aclaro mucho. Tengo una case Main que me genera en el constructor una Frame con varios Labels. Esta Main crea varios hilos y una vez arrancados los hilos, quiero que el resultado quede reflejado en su respectivo Label. El problema es que no se como comunicarme con estos Labels ya que estan en la clase principal.
He probado con:
Main m = new Main();
m.JLabel1.setText("nuevo dato");
pero no se hace asi. ¿Alguna pista?