计时器

//TestStopWatch.java package myprojects.teststopwatch; import java.awt.*; import java.awt.event.*; class TestStopWatch extends Frame { public TestStopWatch() { this.add(new StopWatch()); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dispose(); System.exit(0); } }); } public static void main(String args[]) { System.out.println("Starting TestStopWatch..."); TestStopWatch mainFrame = new TestStopWatch(); mainFrame.setSize(400, 400); mainFrame.setTitle("TestStopWatch"); mainFrame.setVisible(true); } }

//StopWatch.java package myprojects.teststopwatch; import java.text.SimpleDateFormat; import java.util.Date; import java.awt.*; import java.awt.event.*; public class StopWatch extends Canvas implements Runnable { //StopWatch继承了Canvas组件类 //实现Runnable接口,实现实时刷新 long startTime=0; //鼠标按下时的时间 long endTime=0; //鼠标松开时的时间 boolean bStart=false; public StopWatch(){ enableEvents(AWTEvent.MOUSE_EVENT_MASK); } protected void processMouseEvent(MouseEvent e){ if(e.getID()==MouseEvent.MOUSE_PRESSED){ bStart=true; new Thread(this).start(); //启动 重绘刷 新线程 startTime=endTime=System.currentTimeMillis(); //获取按下鼠标时的当前时间 repaint(); //按下鼠标时重绘组件,实现计时器归零 } else if(e.getID()==MouseEvent.MOUSE_RELEASED){ endTime=System.currentTimeMillis(); //获取放开鼠标时的当前时间 repaint(); //并且重绘组件 bStart=false; } } public void paint(Graphics g){ //覆盖Component类的paint()方法 SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");//注意HH:mm:ss几个字母的大小写 Date elapsedTime=null; //定义鼠标按下和松开之间的时间差 try{ elapsedTime=sdf.parse("00:00:00");//设置elapsedTime初始值为00:00:00,编译时提示可能出现异常,要try一下 } catch(Exception e){ e.printStackTrace(); } elapsedTime.setTime(elapsedTime.getTime()+endTime-startTime); String strTime=sdf.format(elapsedTime); //时间差elapsedTime格式化后的字符串就是要在计时器上显示的内容 g.fill3DRect(0,0,78,28,true); //设置背景 g.setColor(Color.WHITE); //设置字体颜色 g.drawString(strTime,10,20); //绘制字符串 } public void run() { // TODO: Add your code here while(bStart){ //循环刷新 try{ Thread.sleep(500); //500毫秒刷新一次 } catch(Exception e){ e.printStackTrace(); } endTime=System.currentTimeMillis(); repaint(); } } }

Java.Canvas相关推荐

  1. java canvas 画图片_[Java教程][HTML5] Canvas绘制简单图片

    [Java教程][HTML5] Canvas绘制简单图片 0 2016-05-13 13:00:04 获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象 ...

  2. java canvas 画圆_java – 如何在Android中通过canvas绘制圆?

    我想画画圆.这里是我的代码: [MyActivity.java]: public class MyActivity extends Activity { public void onCreate(Bu ...

  3. java canvas 动态画图_canvas前端动图如何实现

    展开全部 Canvas是HTML5中的重要组成部62616964757a686964616fe59b9ee7ad9431333366306464分,用于绘制简单的图形,定义路径,创建渐变及应用图像变换 ...

  4. java canvas 动画效果_八大疯狂HTML5 Canvas及WebGL动画效果

    [IT168应用]HTML5.WebGL和JavaScript改变了长久以来的动画制作行业.在过去的几年中,我们想要制作卓越的网页动画只能使用Flash和Java Applet.而现在,使用脚本语言和 ...

  5. java canvas添加图片上传_HTML5 canvas画图及图片上传服务器

    上一个教程中我们实现了使用html5 canvas来制作涂鸦画板的效果,在这个教程中,我们将讲解如何将画好的图片上传到服务器上. 最后的效果如下图,当点击"开始画图"按钮,将在ca ...

  6. java canvas详解_HTML5的canvas绘图技术详解

    原标题:HTML5的canvas绘图技术详解 本篇教程探讨了HTML5的canvas绘图技术详解,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < canvas ...

  7. java Canvas画图学习小结

    主函数 package paint;import javax.swing.JFrame;public class PaintMain {JFrame jFrame;public static void ...

  8. java canvas画图,UWP Canvas绘图越界

    我有一个画布(不是InkCanvas!),我可以在上面绘制Polylines . 这工作得很好,但是如下面的GIF所示,绘制出界限存在一个巨大的问题 . 我的画布在ScrollViewer中,Scro ...

  9. java canvas画圆圈_java – 在视图上绘制一个圆圈(android)

    几点意见: 在确定圆的中心点和半径时,您需要考虑分配给视图的宽度和高度. 您应该考虑分配给视图的填充,这样就不会绘制该保留部分. 你应该避免在onDraw方法中分配对象,因为这会被调用很多. 为了允许 ...

最新文章

  1. python网上授课_python完整课程
  2. inter Course Certificate
  3. 穿越剧_张宇鑫:穿越剧——从皇帝到乞丐
  4. oracle 截取 tr,oracle中实现截取字符串(substr)、查找字符串位置(instr)、替换字符串(replace)...
  5. 解决数据库密码为YES的问题
  6. codeforces gym 100187M Heaviside Function
  7. 微信小程序开发--【APP(Object)函数介绍】(三)
  8. B2B的用户画像怎么做?
  9. unity 罗技G29开发
  10. 8086汇编_常用指令
  11. workbench动力学周炬_ANSYSWorkbench有限元分析实例详解(动力学)
  12. html所有标签大全wps文件,html所有标签及其作用说明.wps
  13. 树莓派 python驱动蜂鸣器
  14. 惠普服务器不进系统,HP服务器无法启动
  15. 如何在 FlowUs、Notion 等笔记软件中进行时间管理?
  16. 在UBUNTU中使用北通USB游戏手柄
  17. 渗透测试常见漏洞描述及修复建议
  18. 云服务器快速建网站_安装BT宝塔面板和wordpress
  19. 用c语言a的n次再取p的余数,近世代数期末考试题库
  20. 计算机组成原理pc的长度,计算机组成原理课后习题答案(一到九章)

热门文章

  1. 科研论文配色参考【不断更新】
  2. ViewPager(六)让ViewPager用起来更顺滑——设置间距与添加转场动画
  3. 茅指数成分股投资收益可视化
  4. 《光剑教教义:五信 九训 十诫 九罪》
  5. 八大基本数据类型之基本类型与包装类型的区别
  6. 如何在spss结果输出页面显示命令/运行代码
  7. python画图配色_python语言,文章绘图配色高级又简单!
  8. Visio2019安装教程(与正版office同时使用)
  9. 【分享】pushplus入驻集简云平台,实现无代码集成数百款应用
  10. .Net 微信开发与微信支付