Java时间记录程序(闲来无事做的)

JAVA学习网 2019-08-06 00:00:02

最近无法静心学习,总是走神

于是专门写一个记录学习时间的软件,算是督促自己吧

很简单的一个小程序:

 

package org.dreamtech;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.Writer;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

/**
 * 学习时间记录软件
 * @author Xu YiQing
 *
 */
public class Main {

    private static JFrame f;
    private static JButton startButton;
    private static JButton endButton;
    private static JTextField timeText;
    private static final String SAVE_PATH = "data/SAVE";
    private static int result;
    private static TimerTask task;

    public static void main(String[] args) {
        f = new JFrame("学习");
        f.setSize(400, 300);
        f.setLocation(200, 200);
        f.setLayout(null);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);

        startButton = new JButton("开始");
        startButton.setBounds(50, 100, 280, 30);
        f.add(startButton);
        startButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                startButtonClick();
            }
        });

        endButton = new JButton("暂停");
        endButton.setBounds(50, 150, 280, 30);
        f.add(endButton);
        endButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                endButtonClick();
            }
        });

        timeText = new JTextField();
        timeText.setEditable(false);
        timeText.setHorizontalAlignment(JTextField.CENTER);
        timeText.setBounds(50, 50, 280, 30);
        f.add(timeText);
    }

    private static void setText(String text) {
        timeText.setText(text);
    }

    protected static void endButtonClick() {
        end(result+"");
    }

    protected static void startButtonClick() {
        start();
    }

    private static void start() {
        String data = "";
        try {
            File file = new File(SAVE_PATH);
            if (!file.exists()) {
                file.createNewFile();
            }
            FileInputStream fis = new FileInputStream(SAVE_PATH);
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = fis.read(b)) != -1) {
                data = new String(b, 0, len);
            }
            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (data == null || data.equals("")) {
            result = 0;
        } else {
            result = Integer.parseInt(data);
        }

        task = new TimerTask() {
            @Override
            public void run() {
                result += 1;
                setText(result+"");
            }
        };
        Timer timer = new Timer();
        long delay = 0;
        long intevalPeriod = 1 * 1000;
        timer.scheduleAtFixedRate(task, delay, intevalPeriod);
    }

    private static void end(String result) {
        try {
            if (task != null) {
                task.cancel();
            }
            File file = new File(SAVE_PATH);
            if (!file.exists()) {
                file.createNewFile();
            } else {
                file.delete();
                file.createNewFile();
            }
            Writer out = new FileWriter(file);
            String data = result;
            out.write(data);
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

阅读(2302) 评论(0)