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的使用相关推荐

  1. java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网

    资源名称:<Java Swing图形界面开发与案例详解>PDF 内容简介: <Java Swing图形界面开发与案例详解>全书共20章,其中第1-2章主要介绍有关Swing的基 ...

  2. JAVA Swing 图形化界面编程

    JAVA Swing 图形化界面编程 目录 1.组件 1.1 基本组件 1.2. 组件边框 1.3. JToolBar 工具条 1.4 JColorChooser 颜色选择器 1.5 JFileCho ...

  3. java swing 目录,java swing图形界面开发目录

    java swing图形界面开发目录,做swing图形开发要学习哪些知识,难不难呢?请看以下的目录你就知道要学习哪些了: 目录 第1章 Java Swing概述 1 1.1 什么是Java Swing ...

  4. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  5. Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  6. java swing 等待框_java – 让用户使用Swing等待

    我想让用户等待一段时间(10秒).我知道在JSP或servlet中我们使用META标记< META HTTP-EQUIV ="Refresh"CONTENT ="3 ...

  7. java swing 删除事件_java swing清除事件队列

    是否可以以标准方式执行此操作? 这是场景. >开始在EDT中做一些昂贵的事情(EDT被阻止,直到昂贵的操作结束). >当EDT被阻止时,用户继续单击/拖动鼠标按钮.所有鼠标操作都记录在某处 ...

  8. java调用通用对话框,利用Java Swing设计通用对话框

    利用Java Swing设计通用对话框 分享到: 文/杨少波 在Java Swing编程中,程序员还可以自定义对话框,一般可以从JDialog类来继承.下面给出一个对话框类的代码: class Hel ...

  9. 【java毕业设计】基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码)——推箱子游戏

    基于java+swing+Eclipse的推箱子游戏设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于java+swing+Eclipse的推箱子游戏设计与实现,文章末尾附有本毕业设计的论文 ...

最新文章

  1. linux系统下网卡故障解决
  2. python的excel库_Python-excel相关库
  3. ipython notebook的安装和使用;pip和easy_install.exe的区别;几个库Scikit-Learn、NumPy、SciPy、Matplotlib的用途...
  4. 在Action类中获得HttpServletResponse对象的四种方法
  5. 一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件
  6. JavaFX仿windows文件管理器目录树
  7. WCF学习笔记之序列化
  8. python image 转成字节_就是这么流弊!三行Python代码,让数据处理速度提高2到6倍
  9. PWN-PRACTICE-BUUCTF-22
  10. IP地址库Linux系统从APNIC获取地址库
  11. 昨晚学妹参加了B站秋招笔试,还想考考我?
  12. [.NET领域驱动设计实战系列]专题十:DDD扩展内容:全面剖析CQRS模式实现
  13. html编码写出滚动字幕,HTML滚动字幕代码及参数详解_html/css_WEB-ITnose
  14. c#高级编程(第八版)-第六章数组随笔
  15. 奥塔哥大学计算机科学怎样,2019QS世界大学学科排名出炉,新西兰最强专业看过来!...
  16. 【Angular】Angular使用HTTP的GET/POST下载流文件
  17. 争议带货达人董明珠:直播带货476亿 却被质疑经销商刷单
  18. 位、字符、字节、有什么区别
  19. Acwing-4699. 如此编码
  20. 四、SQL函数②(字符串函数)

热门文章

  1. 胡渊鸣的「太极图形」又融了5000万美元,接下来推出3D内容创作平台
  2. 评审关上了你CVPR的门?这还有Rebuttal的窗,7个小技巧送上
  3. 英伟达用AI给自家纪录片配音,情绪节奏稳稳拿捏,不说根本听不出来
  4. 「Smile」一下,轻松用Java玩转机器学习
  5. 国产游戏《黑神话:悟空》刷爆全网,虚幻引擎4打造,网友:有生之年终于看到国产3A!...
  6. MLPerf发布首个AI芯片推理测试排行榜:阿里平头哥含光800获得多项第一
  7. 如何及时获得AI顶尖科研团队的最新论文与进展?只需一份AI内参!
  8. iPhone遭遇最强烈的黑客攻击:密码、位置、联系人,敏感数据都泄露,谷歌发现的...
  9. 170多个Ionic Framework学习资源(转载)
  10. 数据结构和算法之——跳表