模块  java.desktop
软件包  javax.swing

Class JSlider

  • 实现的所有接口
    ImageObserverMenuContainerSerializableAccessibleSwingConstants

    @JavaBean(defaultProperty="UI",
              description="A component that supports selecting a integer value from a range.")
    public class JSlider
    extends JComponent
    implements SwingConstants, Accessible
    一种组件,允许用户通过在有界区间内滑动旋钮以图形方式选择值。 旋钮始终位于指定间隔内与整数值匹配的点。

    滑块可以显示主要刻度线和主要刻度线之间的小刻度线。 刻度线之间的值的数量由setMajorTickSpacingsetMinorTickSpacing控制。 刻度线的绘画由setPaintTicks控制。

    滑块还可以沿滑块轨道以固定间隔(或在任意位置)打印文本标签。 标签的绘画由setLabelTablesetPaintLabels控制。

    有关更多信息和示例,请参阅“Java教程” How to Use Sliders部分

    警告: Swing不是线程安全的。 有关更多信息,请参阅Swing's Threading Policy

    警告:此类的序列化对象与以后的Swing版本不兼容。 当前的序列化支持适用于运行相同版本Swing的应用程序之间的短期存储或RMI。 从1.4开始, java.beans软件包中添加了对所有JavaBeans java.beans长期存储的支持。 请参阅XMLEncoder

    从以下版本开始:
    1.2
    另请参见:
    Serialized Form
    • 字段详细信息

      • sliderModel

        protected BoundedRangeModel sliderModel
        处理滑块的数字最大值,最小值和当前位置值的数据模型。
      • majorTickSpacing

        protected int majorTickSpacing
        主刻度标记之间的值的数量 - 打破次刻度标记的较大标记。
      • minorTickSpacing

        protected int minorTickSpacing
        次刻度标记之间的值数 - 主刻度标记之间出现的较小标记。
        另请参见:
        setMinorTickSpacing(int)
      • snapToTicks

        protected boolean snapToTicks
        如果为true,则旋钮(及其表示的数据值)将解析为用户放置旋钮的位置旁边最近的刻度线。 默认值为false。
        另请参见:
        setSnapToTicks(boolean)
      • orientation

        protected int orientation
        滑块是水平还是垂直默认为水平。
        另请参见:
        setOrientation(int)
      • changeEvent

        protected transient ChangeEvent changeEvent
        每个滑块实例只需要一个ChangeEvent因为事件的唯一(只读)状态是源属性。 这里生成的事件源始终是“this”。 第一次触发事件通知时,会延迟创建该事件。
        另请参见:
        fireStateChanged()
    • 构造方法详细信息

      • JSlider

        public JSlider()
        创建一个水平滑块,范围为0到100,初始值为50。
      • JSlider

        public JSlider​(int orientation)
        使用指定方向创建滑块,范围为0100 ,初始值为50 方向可以是SwingConstants.VERTICALSwingConstants.HORIZONTAL
        参数
        orientation - 滑块的方向
        异常
        IllegalArgumentException - 如果方向不是 VERTICAL HORIZONTAL
        另请参见:
        setOrientation(int)
      • JSlider

        public JSlider​(int min,
                       int max)
        使用指定的最小值和最大值创建水平滑块,初始值等于最小值加上最大值的平均值。

        保存滑块数据的BoundedRangeModel可处理因滑块上不正确设置最小值和最大值而可能出现的任何问题。 有关详细信息,请参阅BoundedRangeModel文档。

        参数
        min - 滑块的最小值
        max - 滑块的最大值
        另请参见:
        BoundedRangeModelsetMinimum(int)setMaximum(int)
      • JSlider

        public JSlider​(int min,
                       int max,
                       int value)
        使用指定的最小值,最大值和值创建水平滑块。

        保存滑块数据的BoundedRangeModel可处理因滑块上不正确设置最小值,初始值和最大值而可能出现的任何问题。 有关详细信息,请参阅BoundedRangeModel文档。

        参数
        min - 滑块的最小值
        max - 滑块的最大值
        value - 滑块的初始值
        另请参见:
        BoundedRangeModelsetMinimum(int)setMaximum(int)setValue(int)
      • JSlider

        public JSlider​(int orientation,
                       int min,
                       int max,
                       int value)
        创建具有指定方向和指定的最小值,最大值和初始值的滑块。 方向可以是SwingConstants.VERTICALSwingConstants.HORIZONTAL

        保存滑块数据的BoundedRangeModel可处理因滑块上不正确设置最小值,初始值和最大值而可能出现的任何问题。 有关详细信息,请参阅BoundedRangeModel文档。

        参数
        orientation - 滑块的方向
        min - 滑块的最小值
        max - 滑块的最大值
        value - 滑块的初始值
        异常
        IllegalArgumentException - 如果方向不是 VERTICAL HORIZONTAL
        另请参见:
        BoundedRangeModelsetOrientation(int)setMinimum(int)setMaximum(int)setValue(int)
      • JSlider

        public JSlider​(BoundedRangeModel brm)
        使用指定的BoundedRangeModel创建水平滑块。
        参数
        brm - 滑块的 BoundedRangeModel
    • 方法详细信息

      • getUI

        public SliderUI getUI()
        获取实现此组件的L&F的UI对象。
        重写:
        getUI在类 JComponent
        结果
        实现Slider L&F的SliderUI对象
      • createChangeListener

        protected ChangeListener createChangeListener()
        想要以不同方式处理模型中的ChangeEvent的子类可以覆盖它以返回自定义ChangeListener实现的实例。 默认值ChangeListener只需调用fireStateChanged方法将ChangeEvent转发到已直接添加到滑块的ChangeListener
        结果
        新的 ChangeListener一个实例
        另请参见:
        changeListenerfireStateChanged()ChangeListenerBoundedRangeModel
      • getChangeListeners

        @BeanProperty(bound=false)
        public ChangeListener[] getChangeListeners()
        返回使用addChangeListener()添加到此JSlider的所有 ChangeListener的数组。
        结果
        添加了所有 ChangeListener如果没有添加侦听器,则为空数组
        从以下版本开始:
        1.4
      • fireStateChanged

        protected void fireStateChanged()
        发送ChangeEvent ,其源为此JSlider ,所有ChangeListener已在注册兴趣小号ChangeEvent秒。 每次从模型接收到ChangeEvent时,都会调用此方法。

        必要时创建事件实例,并将其存储在changeEvent

        另请参见:
        addChangeListener(javax.swing.event.ChangeListener)EventListenerList
      • setModel

        @BeanProperty(description="The sliders BoundedRangeModel.")
        public void setModel​(BoundedRangeModel newModel)
        设置处理滑块的三个基本属性的BoundedRangeModel :最小值,最大值,值。

        尝试将null模型传递给此方法会导致未定义的行为,并且很可能是异常。

        参数
        newModel - 新的, non-null BoundedRangeModel使用
        另请参见:
        getModel()BoundedRangeModel
      • getValueIsAdjusting

        public boolean getValueIsAdjusting()
        从模型返回valueIsAdjusting属性。 有关如何使用它的详细信息,请参阅setValueIsAdjusting文档。
        结果
        模型的值 valueIsAdjusting属性
        另请参见:
        setValueIsAdjusting(boolean)
      • getExtent

        public int getExtent()
        返回BoundedRangeModel中的“范围”。 这表示旋钮“覆盖”的值范围。
        结果
        表示范围的int
        另请参见:
        setExtent(int)BoundedRangeModel.getExtent()
      • setExtent

        @BeanProperty(bound=false,
                      expert=true,
                      description="Size of the range covered by the knob.")
        public void setExtent​(int extent)
        设置旋钮“覆盖”范围的大小。 如果用户点击旋钮的任一侧,大多数外观和感觉实现都会将该值更改为此数量。 此方法只是将新范围值转发给模型。

        数据模型( BoundedRangeModel的实例)处理因分配错误值而产生的任何数学问题。 有关详细信息,请参阅BoundedRangeModel文档。

        如果新范围值与先前范围值不同,则会通知所有更改侦听器。

        参数
        extent - 新的范围
        另请参见:
        getExtent()BoundedRangeModel.setExtent(int)
      • getOrientation

        public int getOrientation()
        返回此滑块的垂直或水平方向。
        结果
        SwingConstants.VERTICALSwingConstants.HORIZONTAL
        另请参见:
        setOrientation(int)
      • setFont

        public void setFont​(Font font)
        设置此组件的字体。
        重写:
        setFont在类 JComponent
        参数
        font - 此组件所需的 Font
        从以下版本开始:
        1.6
        另请参见:
        Component.getFont()
      • getLabelTable

        public Dictionary getLabelTable()
        返回要在哪些值处绘制的标签的字典。
        结果
        包含标签的 Dictionary以及绘制它们的位置
      • setLabelTable

        @BeanProperty(hidden=true,
                      visualUpdate=true,
                      description="Specifies what labels will be drawn for any given value.")
        public void setLabelTable​(Dictionary labels)
        用于指定在任何给定值处绘制的标签。 键值对的格式为: { Integer value, java.swing.JComponent label }

        生成标准值标签表的createStandardLabels方法是使用createStandardLabels方法。

        设置标签后,此方法将调用updateLabelUIs() 请注意,仅当paintLabels属性为true才会绘制标签。

        参数
        labels - 新的标签 Dictionary ,或 null删除所有标签
        另请参见:
        createStandardLabels(int)getLabelTable()setPaintLabels(boolean)
      • createStandardLabels

        public Hashtable<Integer,​JComponent> createStandardLabels​(int increment)
        创建一个Hashtable的数字文本标签,从最小滑块开始,并使用指定的增量。 例如,如果调用createStandardLabels( 10 )并且滑块最小值为零,则将为值createStandardLabels( 10 )等创建标签。

        有关滑块上绘制的标签,返回Hashtable必须传递到setLabelTable ,并setPaintLabels必须设置为true

        有关返回的Hashtable更多详细信息,请参阅setLabelTable文档。

        参数
        increment - 生成的哈希表中标签之间的距离
        结果
        一个新的 Hashtable标签
        异常
        IllegalArgumentException - 如果 increment小于或等于零
        另请参见:
        setLabelTable(java.util.Dictionary)setPaintLabels(boolean)
      • createStandardLabels

        public Hashtable<Integer,​JComponent> createStandardLabels​(int increment,
                                                                        int start)
        创建一个Hashtable的数字文本标签,从指定的起始点开始,并使用指定的增量。 例如,如果您调用createStandardLabels( 10, 2 ) ,则将为值createStandardLabels( 10, 2 )等创建标签。

        有关滑块上绘制的标签,返回Hashtable必须传递到setLabelTable ,并setPaintLabels必须设置为true

        有关返回的Hashtable更多详细信息,请参阅setLabelTable文档。

        参数
        increment - 生成的哈希表中标签之间的距离
        start - 标签开始的值
        结果
        一个新的 Hashtable标签
        异常
        IllegalArgumentException - 如果 start超出范围,或者 increment小于或等于零
        另请参见:
        setLabelTable(java.util.Dictionary)setPaintLabels(boolean)
      • getInverted

        public boolean getInverted()
        如果为滑块显示的值范围反转,则返回true,
        结果
        如果滑块值与正常顺序相反,则为true
        另请参见:
        setInverted(boolean)
      • setInverted

        @BeanProperty(visualUpdate=true,
                      description="If true reverses the slider values from their normal order")
        public void setInverted​(boolean b)
        指定true以反转为滑块显示的值范围,并指定false以将值范围设置为正常顺序。 订单取决于滑块的ComponentOrientation属性。 正常(非反转)水平滑块的值为ComponentOrientation值为LEFT_TO_RIGHT ,右侧最大值。 ComponentOrientation值为RIGHT_TO_LEFT普通水平滑块最大值位于左侧。 正常垂直滑块的最大值位于顶部。 当滑块倒置时,这些标签会反转。

        默认情况下,此属性的值为false

        参数
        b - 如果从正常顺序反转滑块值, b true
      • getMajorTickSpacing

        public int getMajorTickSpacing()
        此方法返回主刻度线间距。 返回的数字表示每个主刻度标记之间的距离(以值为单位)。 如果您有一个范围为0到50的滑块且主刻度线间距设置为10,则您将获得以下值旁边的主要刻度:0,10,20,30,40,50。
        结果
        主刻度之间的值的数量
        另请参见:
        setMajorTickSpacing(int)
      • setMajorTickSpacing

        @BeanProperty(visualUpdate=true,
                      description="Sets the number of values between major tick marks.")
        public void setMajorTickSpacing​(int n)
        此方法设置主要刻度线间距。 传入的数字表示每个主要刻度标记之间的距离(以值为单位)。 如果您有一个范围为0到50的滑块且主刻度线间距设置为10,则您将获得以下值旁边的主要刻度:0,10,20,30,40,50。

        为了绘制主要刻度, setPaintTicks必须设置为true

        此方法还将为您设置标签表。 如果还没有标签表,并且主刻度线间距为> 0 ,而getPaintLabels返回true ,则将生成标准标签表(通过调用createStandardLabels ),标签位于主刻度线处。 对于上面的示例,您将获得文本标签:“0”,“10”,“20”,“30”,“40”,“50”。 然后通过调用setLabelTable在滑块上设置标签表。

        参数
        n - majorTickSpacing属性的新值
        另请参见:
        getMajorTickSpacing()setPaintTicks(boolean)setLabelTable(java.util.Dictionary)createStandardLabels(int)
      • getMinorTickSpacing

        public int getMinorTickSpacing()
        此方法返回次要刻度线间距。 返回的数字表示每个次要刻度标记之间的距离(以值为单位)。 如果您的滑块范围为0到50且次要刻度线间距设置为10,则您将在以下值旁边获得次要刻度:0,10,20,30,40,50。
        结果
        次要刻度之间的值的数量
        另请参见:
        getMinorTickSpacing()
      • setMinorTickSpacing

        @BeanProperty(visualUpdate=true,
                      description="Sets the number of values between minor tick marks.")
        public void setMinorTickSpacing​(int n)
        此方法设置次要刻度线间距。 传入的数字表示每个次要刻度标记之间的距离(以值测量)。 如果您的滑块范围为0到50且次要刻度线间距设置为10,则您将在以下值旁边获得次要刻度:0,10,20,30,40,50。

        为了绘制小刻度, setPaintTicks必须设置为true

        参数
        n - minorTickSpacing属性的新值
        另请参见:
        getMinorTickSpacing()setPaintTicks(boolean)
      • getSnapToTicks

        public boolean getSnapToTicks()
        如果旋钮(及其表示的数据值)解析为用户放置旋钮的旁边最近的刻度线,则返回true。
        结果
        如果值捕捉到最接近的刻度线,则返回true,否则返回false
        另请参见:
        setSnapToTicks(boolean)
      • setSnapToTicks

        @BeanProperty(description="If true snap the knob to the nearest tick mark.")
        public void setSnapToTicks​(boolean b)
        指定true会使旋钮(及其表示的数据值)解析为用户放置旋钮的位置旁边最近的刻度线。 默认情况下,此属性为false
        参数
        b - 如果将旋钮捕捉到最近的刻度线, b true
        另请参见:
        getSnapToTicks()
      • getPaintTicks

        public boolean getPaintTicks()
        告知是否要绘制刻度线。
        结果
        如果刻有刻度线,则为true,否则为false
        另请参见:
        setPaintTicks(boolean)
      • setPaintTicks

        @BeanProperty(visualUpdate=true,
                      description="If true tick marks are painted on the slider.")
        public void setPaintTicks​(boolean b)
        确定是否在滑块上绘制刻度线。 默认情况下,此属性为false
        参数
        b - 是否应涂上刻度线
        另请参见:
        getPaintTicks()
      • getPaintTrack

        public boolean getPaintTrack()
        判断是否要绘制轨道(滑块滑入的区域)。
        结果
        如果描绘了轨道,则为true,否则为false
        另请参见:
        setPaintTrack(boolean)
      • setPaintTrack

        @BeanProperty(visualUpdate=true,
                      description="If true, the track is painted on the slider.")
        public void setPaintTrack​(boolean b)
        确定轨道是否在滑块上绘制。 默认情况下,此属性为true 尊重这个属性取决于外观和感觉,有些人可能会选择忽略它。
        参数
        b - 是否绘制滑块轨道
        另请参见:
        getPaintTrack()
      • getPaintLabels

        public boolean getPaintLabels()
        判断是否要绘制标签。
        结果
        如果标签被绘制,则为true,否则为false
        另请参见:
        setPaintLabels(boolean)
      • setPaintLabels

        @BeanProperty(visualUpdate=true,
                      description="If true labels are painted on the slider.")
        public void setPaintLabels​(boolean b)
        确定是否在滑块上绘制标签。

        此方法还将为您设置标签表。 如果还没有标签表,并且主刻度线间距为> 0 ,则将生成标准标签表(通过调用createStandardLabels ),标签位于主刻度标记处。 然后通过调用setLabelTable在滑块上设置标签表。

        默认情况下,此属性为false

        参数
        b - 是否涂漆标签
        另请参见:
        getPaintLabels()getLabelTable()createStandardLabels(int)
      • paramString

        protected String paramString()
        返回此JSlider的字符串表示形式。 此方法仅用于调试目的,返回字符串的内容和格式可能因实现而异。 返回的字符串可能为空,但可能不是null
        重写:
        paramString在类 JComponent
        结果
        此JSlider的字符串表示形式。