Java Swing 之Timer配合JProgressBar的使用
Timer作为java开发中常用的一个定时工具,配合JProgressBar使用起来还真是方便,只需要调用timer.start()方法就能激活并运行,然后调用stop()方法便能停止,还可以再次通过restart()方法重新使其运行,下面就直接上代码吧:
package UsefulKnowledge;import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.Timer;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;public class TimerAndProgressBar implements ActionListener,ChangeListener{JFrame f=null;JProgressBar progressBar=null;JLabel label;Timer timer;JButton b;public TimerAndProgressBar() {// TODO Auto-generated constructor stubf=new JFrame("ProgressBar and Timer Test");Container containerPane=f.getContentPane();label=new JLabel("",JLabel.CENTER);progressBar=new JProgressBar();progressBar.setOrientation(JProgressBar.HORIZONTAL);progressBar.setMinimum(0);progressBar.setMaximum(100);progressBar.setValue(0);progressBar.setStringPainted(true);progressBar.addChangeListener(this);progressBar.setPreferredSize(new Dimension(200,30));JPanel panel=new JPanel();b=new JButton("Start");b.addActionListener(this);panel.add(b);timer=new Timer(50,this);containerPane.add(panel,BorderLayout.NORTH);containerPane.add(progressBar,BorderLayout.CENTER);containerPane.add(label,BorderLayout.SOUTH);f.pack();f.setVisible(true);f.addWindowListener(new WindowAdapter(){@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stubSystem.exit(0);}});}public static void main(String []args){new TimerAndProgressBar();}@Overridepublic void stateChanged(ChangeEvent e) {// TODO Auto-generated method stubint value=progressBar.getValue();if(e.getSource()==progressBar){label.setText("目前已完成进度:"+Integer.toString(value)+"%");}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif(e.getSource()==b){timer.start();}if(e.getSource()==timer){int value=progressBar.getValue();if(value<100){value++;progressBar.setValue(value);}else{timer.stop();progressBar.setValue(0);}}}}
我们在程序中设置了stateChanged方法来侦听进度条的value的改变,从而达到对其的控制。是不是感觉很方便。
Java Swing 之Timer配合JProgressBar的使用相关推荐
- java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网
资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...
- JAVA Swing 图形化界面编程
JAVA Swing 图形化界面编程 目录 1.组件 1.1 基本组件 1.2. 组件边框 1.3. JToolBar 工具条 1.4 JColorChooser 颜色选择器 1.5 JFileCho ...
- java swing 目录,java swing图形界面开发目录
java swing图形界面开发目录,做swing图形开发要学习哪些知识,难不难呢?请看以下的目录你就知道要学习哪些了: 目录 第1章 Java Swing概述 1 1.1 什么是Java Swing ...
- java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
- Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
- java swing 等待框_java – 让用户使用Swing等待
我想让用户等待一段时间(10秒).我知道在JSP或servlet中我们使用META标记< META HTTP-EQUIV ="Refresh"CONTENT ="3 ...
- java swing 删除事件_java swing清除事件队列
是否可以以标准方式执行此操作? 这是场景. >开始在EDT中做一些昂贵的事情(EDT被阻止,直到昂贵的操作结束). >当EDT被阻止时,用户继续单击/拖动鼠标按钮.所有鼠标操作都记录在某处 ...
- java调用通用对话框,利用Java Swing设计通用对话框
利用Java Swing设计通用对话框 分享到: 文/杨少波 在Java Swing编程中,程序员还可以自定义对话框,一般可以从JDialog类来继承.下面给出一个对话框类的代码: class Hel ...
- 【java毕业设计】基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码)——推箱子游戏
基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的推箱子游戏设计与实现,文章末尾附有本毕业设计的论文 ...
最新文章
- linux系统下网卡故障解决
- python的excel库_Python-excel相关库
- ipython notebook的安装和使用;pip和easy_install.exe的区别;几个库Scikit-Learn、NumPy、SciPy、Matplotlib的用途...
- 在Action类中获得HttpServletResponse对象的四种方法
- 一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件
- JavaFX仿windows文件管理器目录树
- WCF学习笔记之序列化
- python image 转成字节_就是这么流弊!三行Python代码,让数据处理速度提高2到6倍
- PWN-PRACTICE-BUUCTF-22
- IP地址库Linux系统从APNIC获取地址库
- 昨晚学妹参加了B站秋招笔试,还想考考我?
- [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
- html编码写出滚动字幕,HTML滚动字幕代码及参数详解_html/css_WEB-ITnose
- c#高级编程(第八版)-第六章数组随笔
- 奥塔哥大学计算机科学怎样,2019QS世界大学学科排名出炉,新西兰最强专业看过来!...
- 【Angular】Angular使用HTTP的GET/POST下载流文件
- 争议带货达人董明珠:直播带货476亿 却被质疑经销商刷单
- 位、字符、字节、有什么区别
- Acwing-4699. 如此编码
- 四、SQL函数②(字符串函数)
热门文章
- 胡渊鸣的「太极图形」又融了5000万美元,接下来推出3D内容创作平台
- 评审关上了你CVPR的门?这还有Rebuttal的窗,7个小技巧送上
- 英伟达用AI给自家纪录片配音,情绪节奏稳稳拿捏,不说根本听不出来
- 「Smile」一下,轻松用Java玩转机器学习
- 国产游戏《黑神话:悟空》刷爆全网,虚幻引擎4打造,网友:有生之年终于看到国产3A!...
- MLPerf发布首个AI芯片推理测试排行榜:阿里平头哥含光800获得多项第一
- 如何及时获得AI顶尖科研团队的最新论文与进展?只需一份AI内参!
- iPhone遭遇最强烈的黑客攻击:密码、位置、联系人,敏感数据都泄露,谷歌发现的...
- 170多个Ionic Framework学习资源(转载)
- 数据结构和算法之——跳表