zoukankan      html  css  js  c++  java
  • 一个计时器按钮

    一个简单的计时器按钮,相当简单,但却很有用,放在这儿分享下。

    功能:点击开始倒计时,再次点击暂停/开始。

     1 import java.awt.Font;
     2 import java.awt.event.ActionEvent;
     3 import java.awt.event.ActionListener;
     4 import java.text.SimpleDateFormat;
     5 import java.util.Date;
     6 
     7 import javax.swing.ImageIcon;
     8 import javax.swing.JButton;
     9 import javax.swing.JLabel;
    10 import javax.swing.Timer;
    11 
    12 public class TimerButton extends JButton implements ActionListener{
    13     Date now = null;
    14     Timer timer = null;
    15     boolean flag=false;
    16     boolean flag2=false;
    17     Font font=null;
    18     public TimerButton(String btnName,int time,ImageIcon timerIcon) {
    19         // TODO Auto-generated constructor stub
    20         //timerIcon=new ImageIcon("images/timer.gif");
    21         font=new Font("幼圆",Font.BOLD,70);
    22         this.setIcon(timerIcon);
    23         this.setText("<html><h1>"+btnName+"</h1></html>");
    24         this.addActionListener(this);
    25         now=new Date();
    26         //设置倒计时时间.
    27         now.setHours(0);
    28         now.setMinutes(time);
    29         now.setSeconds(0);
    30         timer = new Timer(1000, new ActionListener() {
    31             public void actionPerformed(ActionEvent e) {
    32                 now = new Date(now.getTime() - 1000);
    33                 //SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
    34                 SimpleDateFormat formatter = new SimpleDateFormat("mm:ss");
    35                 TimerButton.this.setFont(TimerButton.this.font);
    36                 TimerButton.this.setText(formatter.format(now));
    37             }
    38         });
    39     }
    40     public TimerButton(String btnName,int time) {
    41         // TODO Auto-generated constructor stub
    42         //timerIcon=new ImageIcon("images/timer.gif");
    43         font=new Font("幼圆",Font.BOLD,70);
    44         this.setText("<html><h1>"+btnName+"</h1></html>");
    45         this.addActionListener(this);
    46         now=new Date();
    47         //设置倒计时时间.
    48         now.setHours(0);
    49         now.setMinutes(time);
    50         now.setSeconds(0);
    51         timer = new Timer(1000, new ActionListener() {
    52             public void actionPerformed(ActionEvent e) {
    53                 now = new Date(now.getTime() - 1000);
    54                 //SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
    55                 SimpleDateFormat formatter = new SimpleDateFormat("mm:ss");
    56                 TimerButton.this.setFont(TimerButton.this.font);
    57                 TimerButton.this.setText(formatter.format(now));
    58             }
    59         });
    60     }
    61     @Override
    62     public void actionPerformed(ActionEvent arg0) {
    63         // TODO Auto-generated method stub
    64         if(arg0.getSource().equals(TimerButton.this)){
    65             if(flag==false){
    66                 this.setIcon(null);
    67                 this.setFont(new Font("幼圆",Font.BOLD,60));
    68                 this.setText("计时开始");
    69                 timer.start();
    70                 flag=true;
    71             }
    72             else{
    73                 if(flag2==false){
    74                     try {
    75                         timer.stop();
    76                     } catch (Exception e) {
    77                         // TODO Auto-generated catch block
    78                         e.printStackTrace();
    79                     }
    80                     flag2=true;
    81                 }else{
    82                     timer.start();
    83                     flag2=false;
    84                 }
    85             }
    86             
    87         }
    88     }
    89 }
  • 相关阅读:
    C++11新特性
    Qt操作xml
    指针和引用的区别
    QT软件主题切换
    常见的临时变量的生成场景
    QQuickWidget+QML设置背景透明
    idea maven Could not transfer artifact
    Java项目启动时执行指定方法的几种方式
    解决bootstrap-table在切换分页后再次查询报错404问题
    bootstrap:表单必填项*标识,及提交前校验
  • 原文地址:https://www.cnblogs.com/wenning/p/2465966.html
Copyright © 2011-2022 走看看