我有一个SpinnerNumberModel
和一些ChangeListener
s。
但只有微调器编号更改时才会通知ChangeListeners。有没有办法启动传播到ChangeListeners的事件,即使新的微调器号与前一个值相同?
答案 0 :(得分:3)
SpinnerNumberModel正是以这些方法向注册的更改侦听器发送一个事件:
1. public void setValue(Object value)
2. public void setStepSize(Number stepSize)
3. public void setMaximum(Comparable maximum)
4. public void setMinimum(Comparable minimum)
在每种方法中,只有当参数传递的值实际上与当前值不同时才会发出事件。
但是,您可以编写自己的SpinnerModel
(例如,通过继承SpinnerNumberModel
)并触发所需的所有事件。如果您的实施继承自AbstractSpinnerModel
,SpinnerNumberModel
,则可以使用方便的fireStateChanged
方法发送事件:
答案 1 :(得分:1)
private static class SpinnerNumberModel2 extends SpinnerNumberModel
{
public SpinnerNumberModel2(int value, int minimum, int maximum, int stepSize)
{
super(value,minimum,maximum,stepSize);
}
public void fireUpdate() { super.fireStateChanged(); }
}