Thread:timer

import javax.swing.*;
import java.awt.*;
import java.awt.Font;
import java.util.*;
import java.awt.Rectangle;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;

public class Frame1 extends JFrame implements Runnable {
    JTextField txt_time = new JTextField(30);
    Thread t1 = null;
    TitledBorder titledBorder1 = new TitledBorder("");

    public Frame1() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(null);
        txt_time.setBackground(UIManager.getColor(
                "InternalFrame.inactiveTitleGradient"));
        txt_time.setFont(new java.awt.Font("黑体", Font.BOLD, 20));
        txt_time.setBorder(BorderFactory.createEtchedBorder());
        txt_time.setText("jTextField1");
        txt_time.setBounds(new Rectangle(9, 9, 316, 96));
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        this.setSize(350, 150);
        this.setLocation((screen.width - 300) / 2, (screen.height) / 2);
        this.setVisible(true);
        this.setResizable(false);
        this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        start();
        this.setTitle("我的数字时钟");
        txt_time.setEditable(false);
        this.getContentPane().add(txt_time, null);
    }

    private void start() {
        if (t1 == null) {
            t1 = new Thread(this);
            t1.start();
        }
    }

    private void stop() {
        if (t1 != null) {
            t1.interrupt();
            t1 = null;
        }
    }

    public static void main(String[] args) {
        Frame1 frame1 = new Frame1();
    }

    public void run() {
        while (true) {
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH) + 1;
            int date = calendar.get(Calendar.DATE);
            int hour = calendar.get(Calendar.HOUR_OF_DAY);
            int minute = calendar.get(Calendar.MINUTE);
            int second = calendar.get(Calendar.SECOND);
            calendar.set(calendar.HOUR, 24);
            String monthStr;
            String dateStr;
            if (month < 10) {
                monthStr = "0" + month;
            } else {
                monthStr = String.valueOf(month);
            }
            if (date < 10) {
                dateStr = "0" + date;
            } else {
                dateStr = String.valueOf(date);
            }
            String hourStr;
            if (hour < 10) {
                hourStr = "0" + hour;
            } else {
                hourStr = String.valueOf(hour);
            }
            String minuteStr;
            if (minute < 10) {
                minuteStr = "0" + minute;
            } else {
                minuteStr = String.valueOf(minute);
            }
            String secondStr;
            if (minute < 10) {
                secondStr = "0" + second;
            } else {
                secondStr = String.valueOf(second);
            }

            txt_time.setText(String.valueOf(year) + "年" + monthStr + "月" +
                             dateStr +
                             "日   " + hourStr + ":" + minuteStr + ":" +
                             secondStr);
            try {
                t1.sleep(1000);
            } catch (Exception e) {}
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值