• P33 JSlider滑块


    系统:Win10
    Java:1.8.0_333
    IDEA:2020.3.4
    Gitee:https://gitee.com/lijinjiang01/JavaSwing

    1.概述

    JSlider:滑块。
    以图形方式在有界区间内通过移动滑块来选择值的组件。
    滑块可以显示主刻度标记以及主刻度之间的次刻度标记。刻度标记之间的值的个数由 setMajorTickSpacing(int) 和 setMinorTickSpacing(int) 来控制。刻度标记的绘制由 setPaintTicks(boolean) 控制。
    滑块也可以在固定时间间隔(或在任意位置)沿滑块刻度打印文本标签。标签的绘制由 setLabelTable(Dictionary) 和 setPaintLabels(boolean) 控制。

    提示:当滑块获得焦点后,按键盘上的 上下左右键 也可以滑动滑块。

    JSlider 常用构造方法:

    /**
     * 参数说明:
     *     orientation: 滑块的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL,默认为水平方向
     *     min: 滑块的最小值
     *     max: 滑块的最大值
     *     value: 滑块的初始值(默认为 最小值 和 最大值 之间的 中间值)
     */
    JSlider()
    
    JSlider(int orientation)    // 默认的最小值、最大值、初始值值 分别为 0, 100, 50
    
    JSlider(int min, int max)   // 默认初始值为 min 和 max 之间的 中间值
    
    JSlider(int min, int max, int value)
    
    JSlider(int orientation, int min, int max, int value)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    JSlider 常用方法:

    // 设置滑块的 最小值、最大值、当前值
    void setMinimum(int min)
    void setMaximum(int max)
    void setValue(int n)
    
    // 获取滑块的当前值
    int getValue()
    
    // 设置 主刻度标记间隔
    void setMajorTickSpacing(int n)
    // 设置单个主刻度内的 次刻度标记间隔
    void setMinorTickSpacing(int n)
    
    // 设置是否绘制 刻度线
    void setPaintTicks(boolean b)
    // 设置是否绘制 刻度标签(刻度值文本)
    void setPaintLabels(boolean b)
    // 设置是否绘制 滑道
    void setPaintTrack(boolean b)
    
    // 设置滑块的方向,SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL
    void setOrientation(int orientation)
    
    // 设置是否颠倒刻度值(刻度值从大到小)
    void setInverted(boolean b)
    
    // 设置滑块是否对齐到刻度。设置为 true,则滑块最终只能在有刻度的位置取值,即滑块取值不连续。
    void setSnapToTicks(boolean b)
    
    // 用于指定将在 给定值处 绘制 对应的标签 来替代刻度数值文本的显示
    void setLabelTable(Dictionary<Integer, JComponent> labels)
    
    // 添加滑块的值改变监听器
    void addChangeListener(ChangeListener l)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    2.代码实例

    import com.lijinjiang.beautyeye.BeautyEyeLNFHelper;
    import javax.swing.*;
    import javax.swing.event.ChangeEvent;
    import javax.swing.event.ChangeListener;
    
    public class Demo01 {
        public static void main(String[] args) {
            try {
                BeautyEyeLNFHelper.frameBorderStyle = BeautyEyeLNFHelper.FrameBorderStyle.generalNoTranslucencyShadow;
                BeautyEyeLNFHelper.launchBeautyEyeLNF();
            } catch (Exception e) {
                e.printStackTrace();
            }
            JFrame frame = new JFrame("Demo01");
            frame.setSize(250, 250);
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    
            JPanel panel = new JPanel();
    
            // 创建一个滑块,最小值、最大值、初始值 分别为 0、20、10
            final JSlider slider = new JSlider(0, 10, 3);
    
            // 设置主刻度间隔
            slider.setMajorTickSpacing(5);
    
            // 设置次刻度间隔
            slider.setMinorTickSpacing(1);
    
            // 绘制 刻度 和 标签
            slider.setPaintTicks(true);
            slider.setPaintLabels(true);
    
            // 添加刻度改变监听器
            slider.addChangeListener(new ChangeListener() {
                @Override
                public void stateChanged(ChangeEvent e) {
                    System.out.println("当前值: " + slider.getValue());
                }
            });
    
            // 添加滑块到内容面板
            panel.add(slider);
    
            frame.add(panel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setVisible(true);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    3.效果演示

    在这里插入图片描述

  • 相关阅读:
    Python 植物大战僵尸
    Flink 数据目录体系:深入理解 Catalog、Database 及 Table 概念
    十二、Sequential
    这是什么代码 你能看懂吗
    UITextField & UITextView 使用小技巧
    数据库分类,市场上常见数据库
    飞讯软件受邀参加天翼云中国行·惠州站活动,并签约生态合作共推工业数字化转型
    【C++编程语言】之程序的内存模型
    山东大学数字图像处理实验(五)
    java基于springboot+vue的碳排放管理平台系统
  • 原文地址:https://blog.csdn.net/qq_35132089/article/details/126900460