package com.robotmen.timer;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Main extends JFrame {
private static JPanel minutePanel = new JPanel();
private static JPanel secondPanel = new JPanel();
private static JPanel btnPanel = new JPanel();
private static JButton beginButton = new JButton();
private static JLabel timerLabel = new JLabel();
private static int minute = 0;
private static int second = 0;
private static int totalSecond = 0;
private static String timerString = "";
public static void main(String[] args) {
Main me = new Main();
}
public Main() {
JTextField minuteInput = new JTextField();
minuteInput.setColumns(4);
JLabel minuteLabel = new JLabel("分");
Font font = new Font("宋体", Font.PLAIN, 32);
minuteInput.setFont(font);
minuteLabel.setFont(font);
JTextField secondInput = new JTextField();
secondInput.setColumns(4);
JLabel secondLabel = new JLabel("秒");
secondInput.setFont(font);
secondLabel.setFont(font);
minutePanel.add(minuteInput);
minutePanel.add(minuteLabel);
secondPanel.add(secondInput);
secondPanel.add(secondLabel);
beginButton.setText("开始计时");
beginButton.setFont(font);
btnPanel.add(beginButton);
btnPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
beginButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
totalSecond = Integer.parseInt(minuteInput.getText())*60+ Integer.parseInt(secondInput.getText());
minute = totalSecond/60;
second = totalSecond%60;
timerString = minute+"分 "+second+"秒";
timerLabel.setText(timerString);
timerLabel.paintImmediately(timerLabel.getBounds());//getVisibleRect
Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
if (totalSecond > 0) {
totalSecond --;
minute = totalSecond/60;
second = totalSecond%60;
timerString = minute+"分 "+second+"秒";
timerLabel.setText(timerString);
}else {
totalSecond = 0;
timerLabel.setText("");
timer.cancel();
Main.this.toFront();
JOptionPane.showMessageDialog(null, "计时结束!!!!!");
}
}
};
timer.schedule(timerTask, 1000, 1000);
}
});
this.setSize(480, 180);
this.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 0));
this.getContentPane().add(minutePanel);
this.getContentPane().add(secondPanel);
this.getContentPane().add(btnPanel);
timerLabel.setFont(font);
timerLabel.setSize(300, 80);
timerLabel.setText(timerString);
this.getContentPane().add(timerLabel);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); //获取屏幕大小
this.setLocation((screenSize.width-200)/2, (screenSize.height-250)/2);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Java计时器");
}
}