- 所有已知的实现类:
DefaultBoundedRangeModel
public interface BoundedRangeModel
定义
Slider s 和 ProgressBar s 等组件使用的数据模型。定义四个相互关联的整数属性:最小值、最大值、范围和值。这四个整数定义了两个嵌套范围,如下所示:
minimum <= value <= value+extent <= maximum外部范围是
minimum,maximum,内部范围是 value,value+extent。内部范围必须位于外部范围内,即 value 必须小于或等于 maximum 并且 value+extent 必须大于或等于 minimum ,并且 maximum 必须大于或等于 minimum 。该模型的一些功能可能会让您感到有些惊讶。这些怪癖的存在是为了方便 Swing BoundedRangeModel 客户端,例如 Slider 和 ScrollBar。
- 最小值和最大值设置方法“更正”其他三个属性以适应它们的新值参数。例如,设置模型的最小值可能会更改其最大值、值和范围属性(按此顺序),以保持上面指定的约束。
- value 和 extent set 方法“更正”它们的参数以适应其他三个属性定义的限制。例如,如果
value == maximum,setExtent(10)会将范围(返回)更改为零。 - 四个 BoundedRangeModel 值被定义为 Java Beans 属性,但是 Swing ChangeEvents 用于通知客户端更改而不是 PropertyChangeEvents。这样做是为了降低监视 BoundedRangeModel 的开销。通常以 MouseDragged 速率报告更改。
有关指定滑块使用的自定义有界范围模型的示例,请参阅 A Swing Architecture Overview. 中的 可分离模型架构
- 自从:
- 1.2
- 参见:
-
方法总结
修饰符和类型方法描述void将 ChangeListener 添加到模型的监听列表中。int返回模型的范围,即从模型值开始的内部范围的长度。int返回模型的最大值。int返回可接受的最小值。intgetValue()返回模型的当前值。boolean如果对 value 属性的当前更改是一系列更改的一部分,则返回 true。void从模型的监听列表中删除 ChangeListener。voidsetExtent(int newExtent) 设置模型的范围。voidsetMaximum(int newMaximum) 将模型的最大值设置为新最大值.voidsetMinimum(int newMinimum) 将模型的最小值设置为新最低.voidsetRangeProperties(int value, int extent, int min, int max, boolean adjusting) 此方法通过单个方法调用设置模型的所有数据。voidsetValue(int newValue) 如果newValue满足模型的约束,则将模型的当前值设置为newValue。voidsetValueIsAdjusting(boolean b) 此属性指示任何即将对模型值进行的更改都应被视为单个事件。
-
方法详情
-
getMinimum
int getMinimum()返回可接受的最小值。- 返回:
- 最小财产的值
- 参见:
-
setMinimum
void setMinimum(int newMinimum) 将模型的最小值设置为新最低.其他三个属性也可以更改,以确保:minimum <= value <= value+extent <= maximum
如果模型发生变化,通知任何听众。
- 参数:
newMinimum- 模型的新最小值- 参见:
-
getMaximum
int getMaximum()返回模型的最大值。请注意,模型值的上限是(最大 - 范围)。- 返回:
- 最大属性的值。
- 参见:
-
setMaximum
void setMaximum(int newMaximum) 将模型的最大值设置为新最大值.其他三个属性也可以更改,以确保minimum <= value <= value+extent <= maximum
如果模型发生变化,通知任何听众。
- 参数:
newMaximum- 模型的新最大值- 参见:
-
getValue
int getValue()返回模型的当前值。请注意,模型值的上限为maximum - extent,下限为minimum。- 返回:
- 模型的值
- 参见:
-
setValue
void setValue(int newValue) 如果newValue满足模型的约束,则将模型的当前值设置为newValue。这些约束是:minimum <= value <= value+extent <= maximum
否则,如果newValue小于minimum,则设置为minimum,如果大于maximum,则设置为maximum,如果大于value+extent,则设置为value+extent。当 BoundedRange 模型与滚动条一起使用时,该值指定滚动条旋钮的原点(又名“拇指”或“电梯”)。该值通常表示正在滚动的对象的可见部分的原点。
如果模型发生变化,通知任何听众。
- 参数:
newValue- 模型的新值- 参见:
-
setValueIsAdjusting
void setValueIsAdjusting(boolean b) 此属性指示任何即将对模型值进行的更改都应被视为单个事件。此属性将在值的一系列更改开始时设置为 true,并在值完成更改后设置为 false。通常,这允许监听仅在提交的最终值更改时才采取行动,而不必对所有中间值进行更新。滑块和滚动条在拖动过程中使用此属性。
- 参数:
b- 如果即将对 value 属性进行的更改是一系列的一部分,则为真
-
getValueIsAdjusting
boolean getValueIsAdjusting()如果对 value 属性的当前更改是一系列更改的一部分,则返回 true。- 返回:
- valueIsAdjusting 属性。
- 参见:
-
getExtent
int getExtent()返回模型的范围,即从模型值开始的内部范围的长度。- 返回:
- 模型的范围属性的值
- 参见:
-
setExtent
void setExtent(int newExtent) 设置模型的范围。这新范围强制大于或等于零且小于或等于最大值。当 BoundedRange 模型与滚动条一起使用时,范围定义滚动条旋钮(又名“拇指”或“电梯”)的长度。范围通常表示被滚动的对象有多少是可见的。当与滑块一起使用时,范围决定了值可以“跳跃”的程度,例如当用户按下 PgUp 或 PgDn 时。
如果模型发生变化,通知任何听众。
- 参数:
newExtent- 模型的新范围- 参见:
-
setRangeProperties
void setRangeProperties(int value, int extent, int min, int max, boolean adjusting) 此方法通过单个方法调用设置模型的所有数据。该方法导致生成单个更改事件。当您需要同时调整所有模型数据并且不希望发生单独的更改事件时,这很方便。- 参数:
value- 一个给出当前值的整数extent- 一个整数,给出值可以“跳跃”的量min- 给出最小值的整数max- 一个给出最大值的整数adjusting- boolean,如果正在进行一系列更改则为真- 参见:
-
addChangeListener
将 ChangeListener 添加到模型的监听列表中。- 参数:
x- 要添加的 ChangeListener- 参见:
-
removeChangeListener
从模型的监听列表中删除 ChangeListener。- 参数:
x- 要移除的 ChangeListener- 参见:
-