SWING - JSlider 类

简介

JSlider 类是一个组件,它允许用户通过在有界间隔内滑动旋钮以图形方式选择值。


类声明

以下是 javax.swing.JSlider 类的声明 −

public class JSlider
   extends JComponent
      implements SwingConstants, Accessible

字段

以下是 javax.swing.JSlider 类的字段 −

  • protected ChangeEvent changeEvent − 每个滑块实例只需要一个 ChangeEvent,因为事件的唯一(只读)状态是源属性。

  • protected ChangeListener changeListener − changeListener(无后缀)是我们添加到滑块模型中的监听器。

  • protected int majorTickSpacing − 主要刻度线之间的值的数量 - 分解次要刻度线的较大标记。

  • protected int minorTickSpacing − 次要刻度线之间的值的数量 - 主要刻度线之间出现的较小标记。

  • protected int orientation − 滑块是水平的还是垂直的 默认是水平的。

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

  • protected boolean snapToTicks − 如果为真,则旋钮(及其代表的数据值)解析为用户放置旋钮的位置旁边最近的刻度线。


类构造函数

序号 构造函数 & 描述
1

JSlider()

创建一个范围为 0 到 100 且初始值为 50 的水平滑块。

2

JSlider(BoundedRangeModel brm)

使用指定的 BoundedRangeModel 创建一个水平滑块。

3

JSlider(int orientation)

使用指定方向创建一个滑块,范围为 0 到 100,初始值为 50。

4

JSlider(int min, int max)

使用指定的最小值和最大值创建一个水平滑块,其初始值等于最小值加最大值的平均值。

5

JSlider(int min, int max, int value)

使用指定的最小值、最大值和值创建水平滑块。

6

JSlider(int orientation, int min, int max, int value)

创建具有指定方向和指定最小值、最大值和初始值的滑块。


类方法

序号 方法 & 描述
1

void addChangeListener(ChangeListener l)

将 ChangeListener 添加到滑块。

2

protected ChangeListener createChangeListener()

想要以不同方式处理来自模型的 ChangeEvents 的子类可以覆盖它以返回自定义 ChangeListener 实现的实例。

3

Hashtable createStandardLabels(int increment)

创建一个数字文本标签的哈希表,从滑块最小值开始,并使用指定的增量。

4

Hashtable createStandardLabels(int increment, int start)

创建一个数字文本标签的哈希表,从指定的起点开始,并使用指定的增量。

5

protected void fireStateChanged()

向所有注册了对 ChangeEvents 感兴趣的 ChangeListener 发送一个 ChangeEvent,其源是这个 JSlider。

6

AccessibleContext getAccessibleContext()

获取与此 JSlider 关联的 AccessibleContext。

7

ChangeListener[] getChangeListeners()

返回使用 addChangeListener() 添加到此 JSlider 的所有 ChangeListener 的数组。

8

int getExtent()

从 BoundedRangeModel 返回"范围"。

9

boolean getInverted()

如果为滑块显示的值范围反转,则返回 true。

10

Dictionary getLabelTable()

返回要在哪些值处绘制哪些标签的字典。

11

int getMajorTickSpacing()

此方法返回主要刻度间距。

12

int getMaximum()

从 BoundedRangeModel 返回滑块支持的最大值。

13

int getMinimum()

从 BoundedRangeModel 返回滑块支持的最小值。

14

int getMinorTickSpacing()

此方法返回次要刻度间距。

15

BoundedRangeModel getModel()

返回处理滑块三个基本属性的 BoundedRangeModel:最小值、最大值、值。

16

int getOrientation()

返回此滑块的垂直或水平方向。

17

boolean getPaintLabels()

告知是否要绘制标签。

18

boolean getPaintTicks()

告诉是否要绘制刻度线。

19

boolean getPaintTrack()

告诉是否要绘制轨道(滑块滑入的区域)。

20

boolean getSnapToTicks()

如果旋钮(及其代表的数据值)解析到用户放置旋钮的位置旁边最近的刻度线,则返回 true。

21

SliderUI getUI()

获取为此组件实现 L&F 的 UI 对象。

22

String getUIClassID()

返回呈现此组件的 L&F 类的名称。

23

int getValue()

从 BoundedRangeModel 返回滑块的当前值。

24

boolean getValueIsAdjusting()

从模型返回 valueIsAdjusting 属性。

25

protected String paramString()

返回此 JSlider 的字符串表示形式。

26

void removeChangeListener(ChangeListener l)

从滑块中移除一个 ChangeListener。

27

void setExtent(int extent)

设置旋钮"覆盖"范围的大小。

28

void setFont(Font font)

设置此组件的字体。

29

void setInverted(boolean b)

指定 true 以反转为滑块显示的值范围,指定 false 以将值范围置于正常顺序。

30

void setLabelTable(Dictionary labels)

用于指定将在任何给定值处绘制的标签。

31

void setMajorTickSpacing(int n)

此方法设置主要刻度间距。

32

void setMaximum(int maximum)

将滑块的最大值设置为最大值。

33

void setMinimum(int minimum)

将滑块的最小值设置为最小值。

34

void setMinorTickSpacing(int n)

此方法设置次要刻度间距。

35

void setModel(BoundedRangeModel newModel)

设置处理滑块三个基本属性的 BoundedRangeModel:minimum, maximum, value。

36

void setOrientation(int orientation)

将滑块的方向设置为 SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL。

37

void setPaintLabels(boolean b)

确定是否在滑块上绘制标签。

38

void setPaintTicks(boolean b)

确定是否在滑块上绘制刻度线。

39

void setPaintTrack(boolean b)

确定是否在滑块上绘制轨道。

40

void setSnapToTicks(boolean b)

指定 true 会使旋钮(及其代表的数据值)解析到用户放置旋钮的位置旁边最近的刻度线。

41

void setUI(SliderUI ui)

设置实现此组件的 L&F 的 UI 对象。

42

void setValue(int n) 将滑块的当前值设置为 n。

43

void setValueIsAdjusting(boolean b)

设置模型的 valueIsAdjusting 属性。

44

protected void updateLabelUIs()

通过在每个标签上调用 updateUI 来更新标签表中标签的 UI。

45

void updateUI()

将 UI 属性重置为当前外观的值。


继承的方法

这个类继承了以下类的方法 −

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JSlider 示例

D:/ > SWING > com > tutorialspoint > gui > 中使用您选择的任何编辑器创建以下 Java 程序

SwingControlDemo.java

package com.tutorialspoint.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class SwingControlDemo {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showSliderDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showSliderDemo(){
      headerLabel.setText("Control in action: JSlider"); 
      JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,10);
      
      slider.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent e) {
            statusLabel.setText("Value : " + ((JSlider)e.getSource()).getValue());
         }
      });
      controlPanel.add(slider);      
      mainFrame.setVisible(true);     
   } 
}

使用命令提示符编译程序。 转到 D:/ > SWING 并键入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingControlDemo.java

如果没有报错,说明编译成功。 使用以下命令运行程序。

D:\SWING>java com.tutorialspoint.gui.SwingControlDemo

验证以下输出。

Swing JSlider

❮ SWING 控件