gpt4 book ai didi

java - 即使数字相同也会导致 SpinnerNumberModel 更新

转载 作者:行者123 更新时间:2023-12-01 19:20:43 26 4
gpt4 key购买 nike

我有一个SpinnerNumberModel和一些ChangeListener s。

但是 ChangeListeners 仅在微调器编号发生更改时才会收到通知。有没有办法启动一个传播到 ChangeListener 的事件,即使新的微调器编号与之前的值相同?

最佳答案

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()

关于java - 即使数字相同也会导致 SpinnerNumberModel 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4400845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com