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