-1
我想製作一個自定義的SpinnerNumberModel類並實現4個方法,即getValue(),setValue(),getNextValue()和getPreviousValue()。似乎我總是從所有這些方法出現錯誤時,我想設置的步長爲2的如何使自定義SpinnerNumberModel功率爲2
import javax.swing.SpinnerNumberModel;
public class MySpinnerModel extends SpinnerNumberModel {
Number value;
@Override
public Object getValue() {
Object returnValue = Math.pow(2, (Double) super.getValue());
return returnValue;
}
@Override
public void setValue(Object value) {
if ((value == null) || !(value instanceof Number)) {
throw new IllegalArgumentException("illegal value");
}
if (!value.equals(this.value)) {
this.value = (Double)value;
fireStateChanged();
}
}
@Override
public Object getNextValue() {
Object returnValue = Math.pow(2, (Double) super.getNextValue());
return returnValue;
}
@Override
public Object getPreviousValue() {
Object returnValue = Math.pow(2, (Double) super.getPreviousValue());
return returnValue;
}
}
你得到什麼錯誤? – SMA
異常在線程 「主要」 java.lang.ClassCastException:java.lang.Integer中不能在MySpinnerModel.getValue被強制轉換爲java.lang.Double中 \t(MySpinnerModel.java:8) \t在javax.swing.JSpinner.getValue (JSpinner.java:331) \t at javax.swing.JSpinner $ DefaultEditor。(JSpinner.java:623) \t at javax.swing.JSpinner $ NumberEditor。 (JSpinner.java:1199) \t at javax.swing.JSpinner $ NumberEditor。 (JSpinner.java:1175) \t at javax.swing.JSpinner $ NumberEditor。 (JSpinner.java:1150) \t在javax.swing.JSpinner.createEditor(JSpinner.java:249) \t在javax.swing.JSpinner中。 (JSpinner.java:155) –
AHA27
Hw5SpinnerModel。 (Hw5SpinnerModel.java:11) \t at Hw5SpinnerModel.main(Hw5SpinnerModel.java:27) – AHA27