在前面的章节中,我们介绍了 Swing 设计简单界面所需的窗口、布局组件以及如何响应事件。

Swing 还提供了很多高级组件,如菜单栏、工具栏、文件选择器、表格以及树等。使用这些高级组件可以实现更为复杂的布局,也可以使程序界面更加人性化,以提高程序的灵活性。

在学习其他高级组件之前,我们先来介绍一些布局组件,包括滑块、进度条、计时器、菜单栏和工具栏,本节我们首先来介绍滑块。

滑块

滑块(JSlider)是一个允许用户在有限区间内通过移动滑块来选择值的组件JSlider 类的常用构造方法如表 1 所示。

JSIider类的常用构造方法:

  • JSlider()---- 创建一个范围在 0~100 且初始值为 50 的水平滑块
  • JSlider(BoundedRangeModel brm)---- 使用指定的 BoundedRangeModel 创建一个水平滑块
  • JSlider(int orientation) ----使用指定的方向创建一个滑块,范围在 0~100 且初始值为 50
  • JSlider(int min,int max)---- 使用指定的最小值和最大值来创建一个水平滑块,初始值等于最小值加上最大值的平均值
  • JSlider(int min,int max,int value) ----用指定的最小值、最大值和初始值创建一个水平滑块

例如,创建一个最小值为 30,最大值为 120,初始值为 55 的水平滑块的语句如下所示。

JSIider slider=new JSIider(30,120,55);

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

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

JSIider 类常用方法:

  • createStandardLabels(int increment)---- 创建一个数字文本标签的Hashtable,从滑块最小值处开始增加,并使用指定的增量
  • getLabelTable()---- 返回哪些标签在哪些刻度绘制的字典
  • getMaj orTickSpacing()---- 返回主刻度标记的间隔
  • getMaximum() 从 BoundedRangeModel---- 返回滑块所支持的最大值
  • getMinimum() 从 BoundedRangeModel ----返回滑块所支持的最小值
  • getMinorTickSpacing() ----返回次刻度标记的间隔
  • getSnapToTicks() 如果滑块(及其所表示的值)----解析为最靠近用户放置滑块处的刻度标记的值,则返回为 true
  • getValue() ----从 BoundedRangeModel 返回滑块的当前值
  • setLabelTable(Dictionary labels) ----用于指定将在给定值处绘制哪个标签
  • setMaj orTickSpacing(int n) ----此方法设置主刻度标记的间隔
  • setMaximum(int maximum)---- 将滑块的最大值设置为 maximum
  • setMinimum(int minimum) ----将滑块的最小值设置为 minimum
  • setMinorTickSpacing(int n)---- 设置次刻度标记的间隔
  • setOrientation(int orientation)---- 将滑块的方向设置为 SwingConstants.VERTICAL 或
    SwingConstants.HORIZONTAL
  • setPaintLabels(boolean b)---- 确定是否在滑块上绘制标签
  • setPaintTicks(boolean b) ----确定是否在滑块上绘制刻度标记
  • setPaintTrack(boolean b) ----确定是否在滑块上绘制滑道
  • setSnapToTicks(boolean b)---- 指定为 true,则滑块(及其所表示的值)解析为最靠近用户放置滑块处的刻度标记的值
  • setValue(int n)---- 将滑块的当前值设置为 n

例 1
在了解 JSIider 类的基础语法之后,下面创建一个滑块实例。实例非常简单,仅仅包含一个滑块,实例源代码如下所示。

import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JSlider;
public class JSliderDemo
{public static void main(String[] agrs){JFrame frame=new JFrame("滑块组件示例");frame.setSize(100,100);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container contentPane=frame.getContentPane();JSlider slider=new JSlider(0,100);slider.setMajorTickSpacing(10);slider.setMinorTickSpacing(5);slider.setPaintLabels(true);   slider.setPaintTicks(true);contentPane.add(slider);frame.setVisible(true);       }
}

上述代码首先创建一个 JFrame 窗口并进行必要属性设置,接着创建一个 JSIider 对象,设置最小值为 0,最大值为 100,然后设置滑块对象的刻度值。运行此时的实例程序,效果如图 1 所示。

如果需要在滑块上添加刻度或标签,可以在“contentPane.add(slider);”前添加下面两行语句:

slider.setPaintLabels(true);
slider.setPaintTicks(true);

再次运行程序,此时滑块的运行效果如图 2 所示。

15、Java Swing JSlider:滑块组件相关推荐

  1. java滑块_Java Swing JSlider滑块的实现示例

    1. 概述 JSlider,滑块. 以图形方式在有界区间内通过移动滑块来选择值的组件. 滑块可以显示主刻度标记以及主刻度之间的次刻度标记.刻度标记之间的值的个数由 setMajorTickSpacin ...

  2. java动态添加组件_有关Java Swing动态增加组件

    展开全部 效果图 参考代码import java.awt.*; import java.awt.event.*; import javax.swing.*; //本类继承自JFrame 实现了 Act ...

  3. 【Java Swing探索之路系列】之二:Java Swing布局面板组件

    作者:郭嘉 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells github:https://github.com/AllenWell 面 ...

  4. Java Swing 树状组件JTree的使用方法【图】

    树中特定的节点可以由 TreePath(封装节点及其所有祖先的对象)标识,或由其显示行(其中显示区域中的每一行都显示一个节点)标识.展开 节点是一个非叶节点(由返回 false 的 TreeModel ...

  5. java容器doc_java容器组件

    [解析] java.awt包提供了基本的 java程序的GUI设计工具.主要包括下述三个概念:组件―Component;容器―Container;布局管理器―LayoutManage.所以选项A是正确 ...

  6. 基于Java Swing界面编程教学

    基于Java Swing界面编程 Swing是Java基础类的一部分,是一个为Java设计的GUI工具包. Swing包含了诸多图形用户界面(GUI)器件,提供了许多比awt更好的屏幕显示元素. 本教 ...

  7. java jbutton边框颜色_在Java Swing中更改JButton的边框颜色,以保留插图

    我想更改Java Swing中JButton组件的边框颜色. 我尝试了以下方法: package com.example.test; import java.awt.Color; import jav ...

  8. Java Swing窗体编写——窗口创建思想

    目录 Java Swing 1.常见组件的介绍 1.1.相关内容 1.2.创建思想 2.总结 Java Swing 1.常见组件的介绍 JFrame.JPanel.JLabel.JTextArea.J ...

  9. java swing 控件_Java Swing组件

    一.        java swing 组件技术简介 1.swing的特性 l  是AWT的扩展,swing比AWT提供了更多的组件和外观 l  它是纯java代码编写(除了JFrame.JDial ...

最新文章

  1. 【代码片段】base样式--针对bootstrap
  2. 游戏行业全场景数字化解决方案全面上线,速来围观
  3. TensorRT学习笔记5 - 运行fc_plugin_caffe_mnist
  4. A__Java为数据结构提供的实用包的运用(减少代码量)---更新中ing
  5. SQL中cross join,left join,right join ,full join,inner join 的区别
  6. 关联分析算法c语言实现,机器学习关联分析
  7. android下升级软件介绍
  8. python带参数装饰器 函数名_python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)...
  9. sql 两表数据合并_多表查询SQL语句
  10. word转pdf出现空白页||去除PDF中的指定页
  11. lisp读取天正轴号_第2天:Python 基础语法
  12. MFC 教程【6_应用程序的退出 】
  13. 人脸重建github源码总结
  14. MPC5744p时钟模块
  15. slickedit调试linux内核,SlickEdit使用(设置篇)
  16. 什么才是真正的项目团队,我来告诉你需要做哪些
  17. Flask 数据库迁移(详解)
  18. 【JS 逆向百例】某音 X-Bogus 逆向分析,JSVMP 纯算法还原
  19. zabbix通过yum安装,启动报错zabbix-agent.service never wrote its PID file. Failing.
  20. 511遇见电脑PC任意多开绿色软件

热门文章

  1. 成功解决Please use the NLTK Downloader to obtain the resource:
  2. Crawler:利用Beautifulsoup库+find_all方法实现下载在线书架小说《星祖的电影世界》
  3. TensorFlow:深度学习框架TensorFlow TensorFlow_GPU的简介、安装、测试之详细攻略
  4. auto-sklearn手册
  5. OpenGL ES 如何能看到一个物体内部和象3dmax中能只显示网格线
  6. B. 熟练剖分(tree) (概率DP)
  7. 【转载】OI生涯结束……在逸夫楼那些的日子里
  8. Java 第三章 选择结构
  9. 【HDU 5184】 Brackets (卡特兰数)
  10. Android开发系列(三)