收藏 分销(赏)

Java计时器Timer和TimerTask用法总结.doc

上传人:pc****0 文档编号:9010081 上传时间:2025-03-11 格式:DOC 页数:6 大小:29.50KB
下载 相关 举报
Java计时器Timer和TimerTask用法总结.doc_第1页
第1页 / 共6页
Java计时器Timer和TimerTask用法总结.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述
Java计时器Timer和TimerTask用法总结(源码)                  在家学技术实在是不好坚持,心里老是想给自己放个假,但是现在俺又太菜,又想赶赶技术。前天做一个五子棋程序, 遇到了计时器功能的需求,但是这个我没用过,就总结一下吧,不过虽然是会用了,但是和swing的代码整合还是有问题,困扰好久 ,到现在也没解决,一气之下,看了三部电影,呵呵。                这个计时器,就是为了使在下五子棋过程中,黑白双方,轮流下的时候,给下棋一方计时,并且要求,时间动态显示在 面板上,就是一秒一秒在走的效果,等这方下了之后,这方的时间停,另一方的表开始走。因为我这个计时器的时间显示是通过 Graphics手绘在面板上显示的,并不是单独一个文本域显示,所以每走一秒要重绘一次面板,功能需求十分的不爽。而Java实现 倒计时,需要递归调用,本来实现秒表就够麻烦了,还要和JFrame整合在一起,JFrame的状态标识属性又多,看着看着就晕了。 尝试个很多次,都没实现。不过timer这个计时器倒是实现了,其实如果那个计时器实现了,这个五子棋就完美了,然后就可以用我想的 广义遍历坐标算法尝试实现人工智能了,就是模拟人机对战。但是这个功能不搞定,实在没心情往下写代码了。好了起因就说到这。               下面给两份源码,一份是基本的,一份是整合JFrame的,不过这个整合和俺的需求不符,所以没用上。 下面是基本类的使用源码: package com.sy.game.test; import java.util.Timer; import java.util.TimerTask; public class TimeTask {            public static void main(String[] args) {          TimeTask tTask=new TimeTask();         tTask.timeVoid();     }          public void timeVoid(){         final Timer timer = new Timer();         TimerTask tt=new TimerTask() {              @Override             public void run() {                 System.out.println("到点啦!");                 timer.cancel();             }         };         timer.schedule(tt, 3000);     } }   整合的: /*  * java倒计时器  * shiyang  * */ package com.sy.game.test; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.Timer; @SuppressWarnings("unused") public class TimeController extends JFrame implements ActionListener {     private static final long serialVersionUID = 4603262282860990473L;     private static final int DEFAULT_WIDTH = 200;     private static final int DEFAULT_HEIGHT = 100;     private static final int width = Toolkit.getDefaultToolkit()             .getScreenSize().width;     private static final int height = Toolkit.getDefaultToolkit()             .getScreenSize().height;     private Container container;     private JButton btn;     private JTextField jtfTime;     private Timer tmr;     public TimeController() {         initComponents();         Timer tmr = new Timer(1000, this);         this.tmr = tmr;         setVisible(true);     }     private void initComponents() {                  this.setTitle("SY秒表");         this.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);                  this.setResizable(false);         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);         this.setLocation((width - DEFAULT_WIDTH) / 2,                 (height - DEFAULT_HEIGHT) / 2);                  jtfTime = new JTextField("10");         btn = new JButton("开始倒计时");                  container = getContentPane();         JPanel panel = new JPanel();         panel.add(btn);         panel.add(jtfTime);         this.add(panel);         btn.addActionListener(this);     }     public void actionPerformed(ActionEvent ae) {         if (ae.getSource() == btn) {             jtfTime.setText("10");             tmr.start();         } else {             int t;             t = Integer.parseInt(jtfTime.getText());             t--;             jtfTime.setText("" + t);             if (t <= 0) {                 tmr.stop();             }         }     }     public static void main(String[] args) {         TimeController timeController = new TimeController();     } }   都可以直接运行。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服