我有一个 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

HTTP:// download.oracle.com/javase/6/docs/api/javax/swing/AbstractSpinnerModel.html#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(); }
}   
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top