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
事件,導致這兩個輸入字段都被鎖定。我該如何解決這個問題?