Java - [ayuda] Aplicar SwingWorker a JFrame con tarea de larga duración

   
Vista:

[ayuda] Aplicar SwingWorker a JFrame con tarea de larga duración

Publicado por Serg (2 intervenciones) el 02/07/2013 15:25:28
Hola buenas tardes a todos, mi problema concreto es que he creado con Swing una aplicación que consiste en mostrar gráficamente la evolución de un perceptrón, entonces para ello mi aplicación tiene unos menús superiores para inicializar los datos necesarios (conjunto de datos de entrenamiento, tipo de perceptrón, error mínimo aceptado, velocidad, y número de ejecuciones); un JPanel que incluye un JLabel en el que incluir la imagen obtenida en el ciclo concreto; y finalmente una serie de botones (iniciar, pausar, finalizar, ...).

La aplicación en si funciona completamente bien salvo por el hecho de que al no haber utilizado ni Threads ni SwingWorker no puedo utilizar los botones durante ningún momento en el que se estén ejecutando los ciclos que actualizan el JLabel.

Actualmente estuve intentando dividir mi clase principal en dos clases (una para la máquina de estados que se asegura que todos los datos necesarios para la ejecución están incluidos y para la creación de la interfaz gráfica, y otra para implementación de las operaciones que extiende de Thread), pero el problema es que pese a que a la hora de crear el objeto de la segunda clase en el constructor pasaba el JLabel creado en la aplicación principal en el momento de actualizar por primera vez la imagen me da la excepción "Exception in thread "Thread-1" java.lang.NullPointerException" por lo que ando bastante perdido y tenía la intención de hacerlo con SwingWorker pero no acabo de entender su funcionamiento, tengo claro que al ser un caso de ejecución de larga duración se utilizaría "doInBackground()" pero no acabo de entender cómo usarlo.

Un saludo y perdón por lo confuso del mensaje, no añadí código por la cantidad de líneas del mismo pero no tendría problema en ello.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

[ayuda] Aplicar SwingWorker a JFrame con tarea de larga duración

Publicado por serg (2 intervenciones) el 03/07/2013 16:21:20
Solucionado, al final lo conseguí modificando el código algo y añadiendo el "final" a los dos JLabel en la clase que extiende de SwingWorker y que toman el valor de dos JLabel que le paso a través del constructor.

Lo dejo por aquí por si alguien tiene un problema similar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar