JSlider

优质
小牛编辑
142浏览
2023-12-01

介绍 (Introduction)

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

Class 声明 (Class Declaration)

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

public class JSlider
   extends JComponent
      implements SwingConstants, Accessible

字段 (Field)

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

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

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

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

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

  • protected int orientation - 滑块是水平还是垂直默认为水平。

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

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

类构造函数 (Class Constructors)

Sr.No.构造函数和描述
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)

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

Class Methods

Sr.No.方法和描述
1

void addChangeListener(ChangeListener l)

将ChangeListener添加到滑块。

2

protected ChangeListener createChangeListener()

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

3

Hashtable createStandardLabels(int increment)

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

4

Hashtable createStandardLabels(int increment, int start)

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

5

protected void fireStateChanged()

将源为此JSlider的ChangeEvent发送给已注册对ChangeEvents感兴趣的所有ChangeListener。

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:minimum,maximum,value。

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) Sets the slider's current value to n.

43

void setValueIsAdjusting(boolean b)

设置模型的valueIsAdjusting属性。

44

protected void updateLabelUIs()

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

45

void updateUI()

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

方法继承 (Methods Inherited)

该类继承以下类中的方法 -

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

JSlider示例

使用您选择的任何编辑器创建以下Java程序,例如D:/ 》 SWING 》 com 》 xnip 》 gui 》

SwingControlDemo.java

package cn.xnip.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\xnip\gui\SwingControlDemo.java

如果没有错误发生,则表示编译成功。 使用以下命令运行该程序。

D:\SWING>java cn.xnip.gui.SwingControlDemo

验证以下输出。

Swing JSlider