我试图实现自己JSpinner
模型来接受enumeration
(包括I18N
),所以我不喜欢的是:定制JSpinner的模型不能正常工作
searchSpinner.setModel(new AbstractSpinnerModel() {
int index = 0;
int minIndex = 0;
int maxIndex = MY_ENUM.values().length - 1;
Object selected = MY_ENUM.values()[index];
@Override
public Object getValue() {
return selected;
}
@Override
public void setValue(Object value) {
selected = value;
fireStateChanged();
}
@Override
public Object getNextValue() {
if (index < maxIndex) {
index++;
}
fireStateChanged();
return MY_ENUM.values()[index];
}
@Override
public Object getPreviousValue() {
if (index > minIndex) {
index--;
}
fireStateChanged();
return MY_ENUM.values()[index];
}
@Override
public void addChangeListener(ChangeListener l) {
}
@Override
public void removeChangeListener(ChangeListener l) {
}
});
的问题是,没有工作,甚至微调列表看起来像已禁用。我究竟做错了什么?
UPDATE:基于第一个答案
'fireStateChanged'函数做了什么? – hrskrs