質問

私が持っている 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