造成SpinnerNumberModel的更新,即使数量是相同的
-
25-09-2019 - |
题
我有一个 SpinnerNumberModel
和一些 ChangeListener
秒。
但ChangeListeners只得到通知的微调数量发生变化时。有没有一种方法来启动的事件传播到ChangeListeners即使新微调数量是一样的前值?
解决方案
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
:
其他提示
托马斯打我,但我得出了同样的结论,这是我落得这样做:
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(); }
}
不隶属于 StackOverflow