0
我有一个名为quantitySl
的JSlider对象和名为quantitySp
的JSpinner对象。当有人更改微调器时,我想将滑块更改为相同的值,反之亦然。将JSlider值更改为JSpinner值,反之亦然
对象的初始化如下:
SpinnerNumberModel quantityLimiter = new SpinnerNumberModel(1, 0, 20, 1);
JSpinner quantitySp = new JSpinner(quantityLimiter);
JSlider quantitySl = new JSlider(0,20,1);
quantitySl.addChangeListener(this);
quantitySp.addChangeListener(this);
这是与我试图改变数值的代码:
@Override
public void stateChanged(ChangeEvent ce) {
if(ce.getSource()==quantitySp){
quantitySp.setValue(quantitySl.getValue());
}
else if(ce.getSource()==quantitySl){
quantitySl.setValue((int) quantitySp.getValue());
}
}
的问题是,改变的价值微调器会触发它的statechanged
事件,导致这两个输入字段都被锁定。我该如何解决这个问题?