Estou utilizando o JSpinner para controlar o rateio de valores em determinada situação no meu sistema, acontece que de acordo com a operação que faço no JSpinner devo alterar valores de outros componentes por ex:
Se incrementar o valor no JSpinner, devo diminuir o valor incrementado em outro campo e vice-versa
A dúvida em questão é: como saber se estou incrementando ou decrementando o valor no JSpinner???
Já pesquisei em diversos tópicos aqui no guj e em outros sites e não consegui uma resposta ainda, se alguém puder ajudar agradeço desde já.
O JSpinner não armazena o valor anterior. Você tem que fazer isso usando uma outra variável. Provavelmente vair precisar adicionar um changeListener ao JSpinner, para detectar quando ele é alterado. Algo do tipo:
jspinner1.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent evt) {
double valor = ((Double) jspinner1.getValue()).doubleValue();
if (valor > valoranterior){
// está incrementando
}else if(valor< valoranterior){
// está decrementando
}
valoranterior = valor;
// note que a variável valoranterior tem que estar declarada em algum outro lugar
}
});
Abraço.