1. 概述

JSlider,滑块。

以图形方式在有界区间内通过移动滑块来选择值的组件。

滑块可以显示主刻度标记以及主刻度之间的次刻度标记。刻度标记之间的值的个数由 setMajorTickSpacing(int) 和 setMinorTickSpacing(int) 来控制。刻度标记的绘制由 setPaintTicks(boolean) 控制。

滑块也可以在固定时间间隔(或在任意位置)沿滑块刻度打印文本标签。标签的绘制由 setLabelTable(Dictionary) 和 setPaintLabels(boolean) 控制。

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

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)

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 labels)

// 添加滑块的值改变监听器

void addChangeListener(ChangeListener l)

2. 代码实例: 默认刻度值

package com.xiets.swing;

import javax.swing.*;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

public class Main {

public static void main(String[] args) {

JFrame jf = new JFrame("测试窗口");

jf.setSize(250, 250);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

// 创建一个滑块,最小值、最大值、初始值 分别为 0、20、10

final JSlider slider = new JSlider(0, 20, 10);

// 设置主刻度间隔

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);

jf.setContentPane(panel);

jf.setVisible(true);

}

}

结果展示:

3. 代码实例: 自定义标签刻度值

package com.xiets.swing;

import javax.swing.*;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;

import java.util.Hashtable;

public class Main {

public static void main(String[] args) {

JFrame jf = new JFrame("测试窗口");

jf.setSize(250, 250);

jf.setLocationRelativeTo(null);

jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

JPanel panel = new JPanel();

// 创建一个滑块,最小值、最大值、初始值 分别为 0、20、10

final JSlider slider = new JSlider(0, 20, 10);

// 设置主刻度间隔

slider.setMajorTickSpacing(5);

// 设置次刻度间隔

slider.setMinorTickSpacing(1);

// 绘制 刻度 和 标签

slider.setPaintTicks(true);

slider.setPaintLabels(true);

/*

* 设置滑块方向为垂直方向

*/

slider.setOrientation(SwingConstants.VERTICAL);

/*

* 给指定的刻度值显示自定义标签

*/

Hashtable hashtable = new Hashtable();

hashtable.put(0, new JLabel("Start")); // 0 刻度位置,显示 "Start"

hashtable.put(10, new JLabel("Middle")); // 10 刻度位置,显示 "Middle"

hashtable.put(20, new JLabel("End")); // 20 刻度位置,显示 "End"

/*

* 将刻度值和自定义标签的对应关系设置到滑块(设置后不再显示默认的刻度值)

*/

slider.setLabelTable(hashtable);

// 添加刻度改变监听器

slider.addChangeListener(new ChangeListener() {

@Override

public void stateChanged(ChangeEvent e) {

System.out.println("当前值: " + slider.getValue());

}

});

// 添加滑块到内容面板

panel.add(slider);

jf.setContentPane(panel);

jf.setVisible(true);

}

}

结果展示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java滑块_Java Swing JSlider滑块的实现示例相关推荐

  1. java entryset()_Java TreeMap entrySet()用法及代码示例

    Java中的java.util.TreeMap.entrySet()方法用于从树图中包含的相同元素中创建一个集合.它本质上返回树图的集合视图,或者我们可以创建一个新集合并将Map元素存储到其中. 用法 ...

  2. java钢琴_Java swing实现支持录音等功能的钢琴程序

    今天给大家介绍一下Java实现钢琴的小程序,程序虽小,功能挺多,支持循环播放,录音等功能,首先简单介绍下源码结构: 先看看钢琴界面实现,添加相应滴监听事件: /* * @(#)MidiSynth.ja ...

  3. swing java管理系统_Java swing实现酒店管理系统

    packagecom.sunshine.setup;import javax.swing.*;import javax.swing.border.*;import javax.swing.table. ...

  4. 合金弹头java视频_Java swing实现的仿植物大战僵尸版合金弹头游戏源码附带视频指导教程...

    <p> <span style="font-family:微软雅黑;font-size:16px;color:#555555;line-height:2;"> ...

  5. java单选按钮_Java Swing JRadioButton:单选按钮组件

    单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态.Swing 中 JRadioButton 类实现单选按钮,它与 JCheckBox 一样都是从 JToggleButto ...

  6. 游戏合金弹头的java源代码_java swing实现合金弹头小游戏源码附带视频指导运行教程...

    <p> <span style="color:#555555;font-family:"font-size:16px;background-color:#FFFF ...

  7. java 开关按钮_Java Swing JToggleButton开关按钮的实现

    1. 概述 官方JavaDocsApi: javax.swing.JToggleButton JToggleButton,开关按钮.JToggleButton 是 JRadioButton, JChe ...

  8. java滚动条_java Swing界面优化JscrollPane滚动条教程

    滚动条,一个很小且不显眼的东西,却左右着一个界面的整体美感. Java中的原生态滚动条,实在不敢恭维,就拿我们之前优化过的界面来说,如果加上原生态的滚动条,美观度立马就反弹了. 优化思路: 1.继承B ...

  9. java皮肤_Java swing皮肤(look and feel)大全

    ########## 优选 ########## Weblaf:非常赞的套件,界面现代.简约.依赖包较少.有开源也有商业协议,个人最喜欢的皮肤. https://github.com/mgarin/w ...

最新文章

  1. 查看cananl是否启动_振动筛无法启动的3大原因及8大注意事项
  2. 云路由 vyatta 体验(四)web代理
  3. 中南大学计算机辅助工艺设计,中南大学计算机辅助制造大作业.doc
  4. Zend Framework 的 PHP 编码标准
  5. 《每日论文》You Only Look Once: Unified, Real-Time Object Detection
  6. matlab中asix off_遗传算符MATLAB程序-入门必看
  7. orm jpa_Spring ORM示例– JPA,Hibernate,事务
  8. faiss python安装_如何在ubuntu 18.04上安装faiss GPU
  9. sql语言的一大类 DML 数据的操纵语言
  10. KL散度、JS散度 的理解以及一些问题
  11. 家居照明行业网络营销怎么搞?
  12. php实现微信小程序登陆功能
  13. SRE 到底是干什么的??
  14. 计算机组成原理:MIPS
  15. 2019觉得工作很难找?来成都网优谷学点技术吧,小老弟!
  16. 汽车IC TPS7A6633QDGNRQ1应用 低压降线性稳压器
  17. 初学者该掌握的计算机知识,初学者该如何学习电脑知识
  18. 面向工业物联网的拍赫兹通信
  19. sprintf函数详细解释
  20. 化妆品用植物干细胞的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。输入一行,一个正整数a (a < 32768)。
  2. 分析如何用万能表测试MOS管的好坏及引脚排列
  3. C语言中fscanf的作用,C语言中fgets和fscanf区别详解
  4. ipfs-缓存/Pinning(文件持久存储、垃圾收集机制)
  5. python模拟“三体运动”轨迹
  6. 怎么在Linux搭建一个可以装mod的Minecraft服务器(我的世界)
  7. 大数据分析案例-基于XGBoost算法构建居民收入分类预测模型
  8. cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言
  9. Array.from() 五个超好用的用途
  10. 电脑不能正常关机解决办法