diff --git a/Time b/Time deleted file mode 100644 index 274d548..0000000 --- a/Time +++ /dev/null @@ -1,128 +0,0 @@ -import javax.swing.*; -import java.awt.HeadlessException; -import java.awt.BorderLayout; -import java.awt.FlowLayout; -import java.awt.Font; -import java.awt.event.ActionListener; -import java.awt.event.ActionEvent; - -public class time extends JFrame { - private static final String INITIAL_LABEL_TEXT = "00:00:00"; - - // 计数线程 - private CountingThread thread = new CountingThread(); - - // 记录程序开始时间 - private long programStart = System.currentTimeMillis(); - - // 程序一开始就是暂停的 - private long pauseStart = programStart; - - // 程序暂停的总时间 - private long pauseCount = 0; - - private JLabel label = new JLabel(INITIAL_LABEL_TEXT); - - private JButton startPauseButton = new JButton("暂停"); - - private JButton resetButton = new JButton("清零"); - - private ActionListener startPauseButtonListener = new ActionListener() { - public void actionPerformed(ActionEvent e) { - if (thread.stopped) { - pauseCount += (System.currentTimeMillis() - pauseStart); - thread.stopped = false; - startPauseButton.setText("暂停"); - } else { - pauseStart = System.currentTimeMillis(); - thread.stopped = true; - startPauseButton.setText("继续"); - } - } - }; - - private ActionListener resetButtonListener = new ActionListener() { - public void actionPerformed(ActionEvent e) { - pauseStart = programStart; - pauseCount = 0; - thread.stopped = true; - label.setText(INITIAL_LABEL_TEXT); - startPauseButton.setText("暂停"); - - } - }; - - public time(String title) throws HeadlessException { - super(title); - setDefaultCloseOperation(EXIT_ON_CLOSE); - setLocation(300, 300); - setResizable(true); - setupLabel(); - if (thread.stopped == false) { - setupButtonsPanel(); - } - - - startPauseButton.addActionListener(startPauseButtonListener); - resetButton.addActionListener(resetButtonListener); - - thread.start(); // 计数线程一直就运行着 - } - //配置按钮 - private void setupButtonsPanel() { - JPanel panel = new JPanel(new FlowLayout()); - panel.add(startPauseButton); - panel.add(resetButton); - add(panel, BorderLayout.SOUTH); - } - - // 配置标签 - private void setupLabel() { - label.setHorizontalAlignment(SwingConstants.CENTER); - label.setFont(new Font(label.getFont().getName(), label.getFont().getStyle(), 20)); - this.add(label, BorderLayout.CENTER); - } - - private class CountingThread extends Thread { - - public boolean stopped = false; - - private CountingThread() { - setDaemon(true); - } - - @Override - public void run() { - while (true) { - if (!stopped) { - long elapsed = System.currentTimeMillis() - programStart - pauseCount; - label.setText(format(elapsed)); - - } - - try { - sleep(1); // 1毫秒更新一次显示 - } catch (InterruptedException e) { - e.printStackTrace(); - System.exit(1); - } - } - } - - // 将毫秒数格式化 - private String format(long elapsed) { - int hour, minute, second; - elapsed = elapsed / 1000; - - second = (int) (elapsed % 60); - elapsed = elapsed / 60; - - minute = (int) (elapsed % 60); - elapsed = elapsed / 60; - - hour = (int) (elapsed % 60); - - return String.format("%02d:%02d:%02d", hour, minute, second); - } - } -}