- 所有已知的实现类:
-
DefaultBoundedRangeModel
public interface BoundedRangeModel
定义了组件如
Slider
和ProgressBar
所使用的数据模型。定义了四个相互关联的整数属性: 最小值、最大值、范围和值。这四个整数定义了两个嵌套的范围,如下所示:
最小值 <= 值 <= 值+范围 <= 最大值外部范围是
最小值,最大值
,内部范围是值,值+范围
。内部范围必须位于外部范围内,即值
必须小于或等于最大值
,值+范围
必须大于或等于最小值
,且最大值
必须大于或等于最小值
。这个模型有一些特性可能会让人感到有些意外。这些怪癖存在是为了方便Swing BoundedRangeModel的客户端,比如Slider
和ScrollBar
。
- 最小值和最大值的设置方法会“修正”其他三个属性以适应它们的新值参数。例如,设置模型的最小值可能会更改其最大值、值和范围属性(按照这个顺序),以保持上述约束。
- 值和范围的设置方法会“修正”它们的参数,使其适应其他三个属性定义的限制。例如,如果
值 == 最大值
,setExtent(10)
会将范围(重新)设置为零。 - 这四个BoundedRangeModel值被定义为Java Beans属性,但是使用Swing ChangeEvents来通知客户端发生的更改,而不是PropertyChangeEvents。这样做是为了保持监视BoundedRangeModel的开销低。更改通常以MouseDragged速率报告。
有关指定滑块使用的自定义有界范围模型的示例,请参见Swing架构概述中的可分离模型架构。
- 自版本:
- 1.2
- 另请参阅:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
向模型的监听器列表中添加一个ChangeListener。int
返回模型的范围,即从模型的值开始的内部范围的长度。int
返回模型的最大值。int
返回最小可接受的值。int
getValue()
返回模型的当前值。boolean
如果当前对值属性的更改是一系列更改的一部分,则返回true。void
从模型的监听器列表中移除一个ChangeListener。void
setExtent
(int newExtent) 设置模型的范围。void
setMaximum
(int newMaximum) 将模型的最大值设置为newMaximum。void
setMinimum
(int newMinimum) 将模型的最小值设置为newMinimum。void
setRangeProperties
(int value, int extent, int min, int max, boolean adjusting) 该方法通过单个方法调用设置模型的所有数据。void
setValue
(int newValue) 如果newValue
符合模型的约束,则将模型的当前值设置为newValue
。void
setValueIsAdjusting
(boolean b) 此属性指示模型的值属性的即将到来的任何更改应被视为单个事件。
-
Method Details
-
getMinimum
int getMinimum()返回最小可接受的值。- 返回:
- 最小属性的值
- 另请参阅:
-
setMinimum
void setMinimum(int newMinimum) 将模型的最小值设置为newMinimum。其他三个属性也可能会更改,以确保:最小值 <= 值 <= 值+范围 <= 最大值
如果模型发生更改,则通知任何监听器。
- 参数:
-
newMinimum
- 模型的新最小值 - 另请参阅:
-
getMaximum
int getMaximum()返回模型的最大值。请注意,模型值的上限为(最大值 - 范围)。- 返回:
- 最大属性的值。
- 另请参阅:
-
setMaximum
void setMaximum(int newMaximum) 将模型的最大值设置为newMaximum。其他三个属性也可能会更改,以确保:最小值 <= 值 <= 值+范围 <= 最大值
如果模型发生更改,则通知任何监听器。
- 参数:
-
newMaximum
- 模型的新最大值 - 另请参阅:
-
getValue
int getValue()返回模型的当前值。请注意,模型值的上限为最大值 - 范围
,下限为最小值
。- 返回:
- 模型的值
- 另请参阅:
-
setValue
void setValue(int newValue) 如果newValue
符合模型的约束,则将模型的当前值设置为newValue
。这些约束是:最小值 <= 值 <= 值+范围 <= 最大值
否则,如果newValue
小于最小值
,则将其设置为最小值
,如果大于最大值
,则将其设置为最大值
,如果大于值+范围
,则将其设置为值+范围
。当有界范围模型与滚动条一起使用时,值指定滚动条滑块的起点(也称为“拇指”或“电梯”)。该值通常表示被滚动对象可见部分的起点。
如果模型发生更改,则通知任何监听器。
- 参数:
-
newValue
- 模型的新值 - 另请参阅:
-
setValueIsAdjusting
void setValueIsAdjusting(boolean b) 此属性指示模型的值属性的即将到来的任何更改应被视为单个事件。此属性将在值的一系列更改开始时设置为true,并在值完成更改时设置为false。通常,这允许监听器仅在最终值更改时采取行动,而不必为所有中间值进行更新。当拖动进行时,滑块和滚动条使用此属性。
- 参数:
-
b
- 如果即将到来的值属性的更改是一系列更改的一部分,则为true
-
getValueIsAdjusting
boolean getValueIsAdjusting()如果当前对值属性的更改是一系列更改的一部分,则返回true。- 返回:
- valueIsAdjustingProperty。
- 另请参阅:
-
getExtent
int getExtent()返回模型的范围,即从模型的值开始的内部范围的长度。- 返回:
- 模型的范围属性的值
- 另请参阅:
-
setExtent
void setExtent(int newExtent) 设置模型的范围。新的范围newExtent被强制为大于或等于零且小于或等于最大值 - 值。当有界范围模型与滚动条一起使用时,范围定义了滚动条滑块的长度(也称为“拇指”或“电梯”)。范围通常表示被滚动对象的多少是可见的。当与滑块一起使用时,范围确定值可以“跳跃”的量,例如当用户按下PgUp或PgDn键时。
如果模型发生更改,则通知任何监听器。
- 参数:
-
newExtent
- 模型的新范围 - 另请参阅:
-
setRangeProperties
void setRangeProperties(int value, int extent, int min, int max, boolean adjusting) 该方法通过单个方法调用设置模型的所有数据。该方法会生成一个单个更改事件。当您需要同时调整所有模型数据且不希望发生单独的更改事件时,这很方便。- 参数:
-
value
- 一个int,表示当前值 -
extent
- 一个int,表示值可以“跳跃”的量 -
min
- 一个int,表示最小值 -
max
- 一个int,表示最大值 -
adjusting
- 一个布尔值,如果正在进行一系列更改,则为true - 另请参阅:
-
addChangeListener
向模型的监听器列表中添加一个ChangeListener。- 参数:
-
x
- 要添加的ChangeListener - 另请参阅:
-
removeChangeListener
从模型的监听器列表中移除一个ChangeListener。- 参数:
-
x
- 要移除的ChangeListener - 另请参阅:
-