最近无法静心学习,总是走神
于是专门写一个记录学习时间的软件,算是督促自己吧
很简单的一个小程序:
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(); } } }