加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java 定时器类 Timer 使用方法

发布时间:2020-12-15 00:13:18 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.awt.*;import java.awt.event.*;import java.text.SimpleDateFormat;import java.util.*;import java.util.Timer;import javax.swing.*;

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

 
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Timer;
import javax.swing.*;
 
public class SimpleTimer extends JWindow {

 
    public static void main(String[] args) {

        SimpleTimer simpleTimer = new SimpleTimer();
        simpleTimer.pack();
        simpleTimer.setAlwaysOnTop(true);
        simpleTimer.setVisible(true);
    }

    private Long startTimeMillis;

    private JLabel label;

    private SimpleDateFormat dateFormat;

    private Timer timer;

 
    public SimpleTimer() {

        initDateFormat();
        initConponents();
        resetTime();
        updateLabelText();
        startTimer();
    }
 
    private void initDateFormat() {

        dateFormat = new SimpleDateFormat("HH:mm:ss");
        dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
    }

 
    private void initConponents() {

        label = new JLabel();
        label.setFont(new Font(label.getFont().getName(),Font.BOLD,14));
        label.setOpaque(true);
        label.setBackground(Color.black);
        label.setForeground(Color.white);
        label.setBorder(BorderFactory.createEmptyBorder(0,2,2));
        getContentPane().add(label);

        final JPopupMenu popup = new JPopupMenu();
        JMenuItem menuItem1 = new JMenuItem("Reset");
        menuItem1.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                resetTime();
            }
        });
        popup.add(menuItem1);
        JMenuItem menuItem2 = new JMenuItem("Exit");
        menuItem2.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {

                System.exit(0);
            }
        });
        popup.add(menuItem2);
        label.setComponentPopupMenu(popup);

        label.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseClicked(MouseEvent e) {

                if (e.getButton() == MouseEvent.BUTTON2
                        && e.getClickCount() == 1) {
                    popup.setVisible(true);
                }
            }
        });
    }

 
    private void resetTime() {

        startTimeMillis = Calendar.getInstance().getTimeInMillis();
    }

    /**
     * ラベル更新
     */
    private void updateLabelText() {

        SwingUtilities.invokeLater(new Runnable() {

            public void run() {

                long elapsedTime = Calendar.getInstance().getTimeInMillis()
                        - startTimeMillis;

                Date date = new Date(elapsedTime);

                label.setText(dateFormat.format(date));
            }
        });
    }

    /**
     * タイマー開始
     */
    private void startTimer() {

        timer = new Timer();
        timer.schedule(new TimerTask() {

            @Override
            public void run() {

                updateLabelText();

            }
        },1000);
    }
}
 

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读