Java - PROBLEMA JSLIDER

 
Vista:

PROBLEMA JSLIDER

Publicado por Luis (39 intervenciones) el 28/11/2007 17:54:53
Hola a todos, tengo un problema con el jslider que he creado en mi programa en java, y es que no sé si es un error del código quehe implementado o realmente es que el jslider a veces le pasa eso (aunque esto último lo dudo).

A ver, os comento mi problema: yo he creado un jslider para que el usuario pueda cambiar la velocidad en la ejecución de la tarea que realiza mi programa. He asociado un evento a ese jslider del tipo stateChanged, es decir, que se lance cada vez que se cambia el valor o el estado de ese jslider.

Cuando ejecuto mi programa, parece que todo va bien, incluso si pretendo cambiar la velocidad de ejecución de la tarea de mi programa, el jslider responde perfectamente a ese cambio. El problema viene cuando cambio varias veces la velocidad del programa, que parece como si se quedara pillado el jslider y no se mueve a pesar de colocar el cursos sobre el mismo e intentar cambiarlo de posición o de valor.

Aquí os dejo el código que he colocado dentro del evento del jslider, aunque no sé si os servirá de mucho:

private void barra_desplStateChanged(javax.swing.event.ChangeEvent evt) {
int valor = barra_despl.getValue();
int miliseg = 0;

if(valor < 5)
{
miliseg = (5 / valor) * tiempo.getInitialDelay();
System.out.println(valor + " " + tiempo.getInitialDelay());
}

if(valor > 5)
{
miliseg = (5 / valor) / tiempo.getInitialDelay();
}

//System.out.println(valor);
if(barra_despl.getValueIsAdjusting() == false)
{
miHilo.introCINT(valor);
tiempo.setDelay(miliseg);
}
}

Lo que hago en el último IF es que cuando el usuario suelta el botón del ratón y no mueve más el jslider, llama a una función creada en un hilo del programa que realiza una tarea concreta.

No sé que puede ser lo que ocasione el incorrecto funcionamiento del jslider, o si me falta algo para que éste no se quede pillado en mitad de la ejecución y no se pueda cambiar el valor más, como actualmente me pasa. También he pensado que puede ser que no esté usando el tipo de evento concreto para lo que busco, y que debería de usar otro. En cualquier caso, espero que alguien me pueda orientar sobre cómo puedo resolver este problema que tengo.

De todas maneras, muchas gracias de antemano. Saludos.
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