人们经常用进度条反映耗时任务已完成的百分比,用ProgressMonitor和ProgressMonitorInputStream实用工具来反映一个任务的进度信息通常会更容易。

JProgessBar 和JSlider 与JSeparator 一样,用来描述一个介于最小值和最大值之间的值。因此,与JProgessBar和JSlider相关的模型是BoundedRangeModel接口的一个实现。

JSeparetor是绘制一条蚀刻线的组件,它把逻辑上相关的组件分隔在一组,JSeparator组件可水平地或垂直地放置。

1、JProgessBar

JProgessBar是一个简单的组件,它一般是一种颜色部分或完全填充的矩形。缺省情况下,进度条配备了一个凹陷的边框,并水平放置。

进度条还可选择显示一个字符串,这个字符串在进度条矩形的中央位置上显示。这个字符串缺省时为耗时任务已完成的百分比。这个字符串可用JProgessBar . setString 方法定制。

1.1 进度条与线程

进度条主要用于反映一个耗时任务已完成的时间比例或剩余时间比例。但是,耗时任务不应当从事件派发线程中完成,而 Swing组件应当只从事件批发线程中更新。那么,如何在一个独立线程的基础上更新一个进度条呢?可以通过用SwingUtilities . invokeLater方法使一个独立线程更新一个进度条来解决这个矛盾。

小应用程序递增一个进度条的值,每秒递增一次,从进度条的最小值递增到它的最大值。激活这个小应用程序中的按钮就开始了这个递增过程。

2、JSlider

与JProgessBar一样,JSlider显示一个介于最小值与最大值之间的值。进度条显示的值只能由程序操纵,而滑杆的值能够直接拖动滑杆柄或单击滑杆槽来操纵。Swing滑杆包含一个可推动的柄,还可以带主要的和次要的间隔标记及标签。

2.1 填充的滑杆

如果–个滑杆的界面样式是Java界面样式,则它就能与图11-6中示出的那样,通过设置一个客户属性“JSlider. isFilled”来填充滑槽。

2.2 滑杆间隔标记

滑杆能够绘制间隔标记,间隔标记是用来描述与滑杆有关的特定值的。间隔标记有主要标记和次要标记之别。主要间隔标记表示一些特定的值,而次要标记表示介于主要标记之间的值。主要和次要间隔标记的外观取决于滑杆的界面样式,但主要间隔标记一般比次要间隔标记大。

有三个方法与绘制滑杆的间隔标记有关:setPaintTicks ()、setMinorTickSpacing ()和setMajorTickSpacing ()。setPaintTicks ()带一个boolean变量,指示是否应该绘制间隔标记。setMi-norTickSpacing ()和setMajorTickSpacing ()方法带–些integer值,这些值分别表示主要标记和次要标记之间的单元数量。关于这些方法有两点需要指出:

首先,用一个true值调用setPaintTicks ()导致仅当设置了主要或次要间隔标记之间的间隙时才绘制间隔标记。换言之,如果不用一个对于0的值调用setMinorTickSpacing ()或setMa-jorTickSpacing (),则调用setPaintTicks ( true)将不会绘制间隔标记。

其次,传送给setMinorTickSpacing ()和setMajorTickSpacing ()方法的integer值不直接表示间隔标记之间的像素点数。这些integer值表示的是间隔标记之间的单元数。例如,调用setMa-jorTickSpacing (25)指定主要间隔标记之间应该相隔25个单元。如果一个滑杆的最小值和最大值分别是0和100,则指定主要间隔标记为25将产生5个主要间隔标记–分别在0、25、50、75和100处绘制。如果改变了这个滑杆的大小,这5个主要标记将重新绘制。

2.3 滑杆标签

除了显示间隔标记外,JSlider实例还能显示滑杆标签。滑杆标签是在滑杆的主要间隔标记位置上绘制的标签。JSlider能够自己产生数字标签、还能通过提供一个Hashtable来指定定制标签。Hashtable 中包含表示值和相应标签的Integer/Jl abel参数对。

2.4 反转滑杆值

所有的滑杆都维护一个inverted 属性,这个属性决定滑杆值的递增方向。缺省情况下,inverted属性的值为false;并且,水平滑杆的值从左向右递增,垂直滑杆的值从下向上递增。当inverted属性的值为true时,水平滑杆的值从右向左递增,垂直滑杆的值则从上向下递增。

2.5 滑杆的外延值

滑杆的外延确定滑杆值的较高范围。例如,如果一个滑杆的最大值为100,外延值为20.那么这个滑杆的值将不会超过“最大值-外延值”。

2.6 事件

变化事件

3、JSeparator

分隔条通常用于分隔(或组织)组件或组件组。尽管有人说分隔条是Swing 的最简单组件,但如果对布局管理器及组件的最小尺寸、最大尺寸和首选尺寸没有很好的了解,则在使用它时也有很多困惑。

3.1 分隔条与框

分隔条非常适合于Swing 的框容器—─Box类的实例,因为框可在水平方向上或在垂直方向上排列组件。一般来说,垂直分隔条放在水平框中,而水平分隔条放在垂直框中。

3.2 事件

没有自己的事件,都是从JComponent继承来的

javaGUI学习47:Swing-进度条、滑杆和分隔条相关推荐

  1. Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)

    使用的教材是java核心技术卷1,我将跟着这本书的章节同时配合视频资源来进行学习基础java知识. day078   Swing用户界面组件(四:选择组件)(复选框.单选钮.边框.组合框.滑动条) 前 ...

  2. java学习之Swing组件学习

    java学习之Swing组件学习 1.笔记 2.代码 3.最终页面 1.笔记 一.java提供了三个主要包做GUI开发 java.awt ----提供字体/页面布局管理器 javax.swing–提供 ...

  3. 及时输出_《奇葩说》大王逆袭开挂:真正会学习的人,都拥有输出这条管道

    作者 l 吴妍丹 来源 l 粥左罗(ID:fangdushe520) 先和大家说个小故事. 在以色列有两个著名的湖泊,加利利海和死海.它们相隔不远,并且有着共同的水源,约旦河. 两个生态环境本应相似的 ...

  4. pgsql 前10条_白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车...

    原标题:白沙湾南片区11条新建道路最新进度及建成时间,已建成一条!还有一条将通车 近日,@白沙河畔 从流亭街道办事处获悉:为了完善白沙湾南片区及仙家寨南片区路网及基础设施配套,为周边区域提供良好的生活 ...

  5. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条

    可实现多种渐变.直角or弧角.进度条.加载条 (Various gradient, right or arc angle, progress bar and loading bar can be re ...

  6. 今天开始要详细的记录学习sharepoint 的进度和相关的一些资料

    今天开始要详细的记录学习sharepoint 的进度和相关的一些资料 转载于:https://www.cnblogs.com/chenfulai/archive/2007/07/26/831952.h ...

  7. Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条

    Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条 做好的宏脚本程序,每次打开脚本加载程序太多麻烦,为了方便的调用脚本做各种操作,可以使用系统的自定义工具条功能将脚本加载到工具条上. ...

  8. 电脑培训AutoCAD工程图纸绘制施工图设计班课程学习计划和进度

    电脑培训AutoCAD工程图纸绘制施工图设计班课程学习计划和进度: 潇洒模具,对培养学生在社会政治.经济环境和组织系统中的职业角色,有非常明确的目标,使学生了解其未来职业生涯中所应承担的责任与具有的权 ...

  9. 小明加密通道进入_「成都全接触」最新!成都8条地铁进展来了!年底还有5条铁路、9条通道!...

    友情提示:2020余额已不足四分之一大家关心的8条地铁线路也有了最新进度其中包括5条预计今年开通3条全新路线.2条机场快速线一起来看看有没有路过你家门口的(内含路线图)-10号线三期-最新进展:全线5 ...

最新文章

  1. R包库安装及数据加载:一次安装多个R包、一次加载多个R包
  2. mysql联合索引查找过程_(MYSQL)回表查询原理,利用联合索引实现索引覆盖
  3. 什么是网络推广浅析网站在优化时该如何让蜘蛛自觉爬行网站?
  4. 一个简单的案例带你入门Dubbo分布式框架
  5. freemodbus源码/获取地址
  6. Jenkins修改管理员密码
  7. 纽约州立大学宾汉姆顿大学计算机科学专业,纽约州立大学宾汉姆顿大学
  8. 玩转 SpringBoot 2 快速整合 | JSP 篇
  9. Eclipse启动Web项目 Tomcat中webapps中没有项目文件夹
  10. iphone:解析html的第三库hpple初试
  11. Eclipse内置Tomcat的配置
  12. Maven搭建SpringMVC+Mybatis项目详解
  13. layui官方文档保存
  14. 鼠标悬浮显示小手可抓取(CSS伪类)
  15. 机器学习实例----美国人口收入分析
  16. 陕西师范大学第七届程序设计竞赛网络同步赛 - ZQ的睡前故事 -(三种方法)
  17. android inflate 参数,Android inflate方法总结
  18. 安装R包报错 [tcl] grab failed: window not viewable.的解决方案
  19. win11 安装Subversion与配置 svn服务端
  20. qlv视频转换器免费版_腾讯视频素材下载和转换教程

热门文章

  1. oracle 里面加条件判断,oracle 查询的时候加条件判断
  2. Airbnb产品运营分析报告
  3. Trun On ACID(Detlete Update) On Hive
  4. 2021年中式面点师(高级)报名考试及中式面点师(高级)模拟试题
  5. 什么是市盈率 什么是市盈率的概念
  6. git —— gerrit 问题初总结
  7. pyhton——爬小说网站(顶点最强国防生)
  8. 【Python学习笔记】(九)正则表达式:re模块
  9. 从零开始做一款Unity3D游戏<一>——亲自上手使用Unity
  10. JPress安装部署及模板开发