- 所有已知的实现类:
-
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返回最小可接受的值。intgetValue()返回模型的当前值。boolean如果当前对值属性的更改是一系列更改的一部分,则返回true。void从模型的监听器列表中移除一个ChangeListener。voidsetExtent(int newExtent) 设置模型的范围。voidsetMaximum(int newMaximum) 将模型的最大值设置为newMaximum。voidsetMinimum(int newMinimum) 将模型的最小值设置为newMinimum。voidsetRangeProperties(int value, int extent, int min, int max, boolean adjusting) 该方法通过单个方法调用设置模型的所有数据。voidsetValue(int newValue) 如果newValue符合模型的约束,则将模型的当前值设置为newValue。voidsetValueIsAdjusting(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 - 另请参阅:
-