java滑块_Java Swing JSlider滑块的实现示例
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滑块的实现示例相关推荐
- java entryset()_Java TreeMap entrySet()用法及代码示例
Java中的java.util.TreeMap.entrySet()方法用于从树图中包含的相同元素中创建一个集合.它本质上返回树图的集合视图,或者我们可以创建一个新集合并将Map元素存储到其中. 用法 ...
- java钢琴_Java swing实现支持录音等功能的钢琴程序
今天给大家介绍一下Java实现钢琴的小程序,程序虽小,功能挺多,支持循环播放,录音等功能,首先简单介绍下源码结构: 先看看钢琴界面实现,添加相应滴监听事件: /* * @(#)MidiSynth.ja ...
- swing java管理系统_Java swing实现酒店管理系统
packagecom.sunshine.setup;import javax.swing.*;import javax.swing.border.*;import javax.swing.table. ...
- 合金弹头java视频_Java swing实现的仿植物大战僵尸版合金弹头游戏源码附带视频指导教程...
<p> <span style="font-family:微软雅黑;font-size:16px;color:#555555;line-height:2;"> ...
- java单选按钮_Java Swing JRadioButton:单选按钮组件
单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态.Swing 中 JRadioButton 类实现单选按钮,它与 JCheckBox 一样都是从 JToggleButto ...
- 游戏合金弹头的java源代码_java swing实现合金弹头小游戏源码附带视频指导运行教程...
<p> <span style="color:#555555;font-family:"font-size:16px;background-color:#FFFF ...
- java 开关按钮_Java Swing JToggleButton开关按钮的实现
1. 概述 官方JavaDocsApi: javax.swing.JToggleButton JToggleButton,开关按钮.JToggleButton 是 JRadioButton, JChe ...
- java滚动条_java Swing界面优化JscrollPane滚动条教程
滚动条,一个很小且不显眼的东西,却左右着一个界面的整体美感. Java中的原生态滚动条,实在不敢恭维,就拿我们之前优化过的界面来说,如果加上原生态的滚动条,美观度立马就反弹了. 优化思路: 1.继承B ...
- java皮肤_Java swing皮肤(look and feel)大全
########## 优选 ########## Weblaf:非常赞的套件,界面现代.简约.依赖包较少.有开源也有商业协议,个人最喜欢的皮肤. https://github.com/mgarin/w ...
最新文章
- 查看cananl是否启动_振动筛无法启动的3大原因及8大注意事项
- 云路由 vyatta 体验(四)web代理
- 中南大学计算机辅助工艺设计,中南大学计算机辅助制造大作业.doc
- Zend Framework 的 PHP 编码标准
- 《每日论文》You Only Look Once: Unified, Real-Time Object Detection
- matlab中asix off_遗传算符MATLAB程序-入门必看
- orm jpa_Spring ORM示例– JPA,Hibernate,事务
- faiss python安装_如何在ubuntu 18.04上安装faiss GPU
- sql语言的一大类 DML 数据的操纵语言
- KL散度、JS散度 的理解以及一些问题
- 家居照明行业网络营销怎么搞?
- php实现微信小程序登陆功能
- SRE 到底是干什么的??
- 计算机组成原理:MIPS
- 2019觉得工作很难找?来成都网优谷学点技术吧,小老弟!
- 汽车IC TPS7A6633QDGNRQ1应用 低压降线性稳压器
- 初学者该掌握的计算机知识,初学者该如何学习电脑知识
- 面向工业物联网的拍赫兹通信
- sprintf函数详细解释
- 化妆品用植物干细胞的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
热门文章
- 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外)。已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物。输入一行,一个正整数a (a < 32768)。
- 分析如何用万能表测试MOS管的好坏及引脚排列
- C语言中fscanf的作用,C语言中fgets和fscanf区别详解
- ipfs-缓存/Pinning(文件持久存储、垃圾收集机制)
- python模拟“三体运动”轨迹
- 怎么在Linux搭建一个可以装mod的Minecraft服务器(我的世界)
- 大数据分析案例-基于XGBoost算法构建居民收入分类预测模型
- cjson构建_[置顶] cJSON库(构建json与解析json字符串)-c语言
- Array.from() 五个超好用的用途
- 电脑不能正常关机解决办法