使用Java图形化界面实现简易计时器
时间: 2023-06-01 14:03:19 浏览: 273
以下是使用Java图形化界面实现简易计时器的示例代码:
```
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TimerApp implements ActionListener {
private JFrame frame;
private JLabel label;
private JButton startButton, stopButton, resetButton;
private Timer timer;
private int seconds = 0, minutes = 0, hours = 0;
public TimerApp() {
frame = new JFrame("Timer App");
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
label = new JLabel("00:00:00");
label.setFont(new Font("Verdana", Font.BOLD, 50));
frame.add(label);
startButton = new JButton("Start");
startButton.addActionListener(this);
frame.add(startButton);
stopButton = new JButton("Stop");
stopButton.addActionListener(this);
frame.add(stopButton);
resetButton = new JButton("Reset");
resetButton.addActionListener(this);
frame.add(resetButton);
timer = new Timer(1000, this);
frame.setSize(300, 200);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == startButton) {
timer.start();
} else if (e.getSource() == stopButton) {
timer.stop();
} else if (e.getSource() == resetButton) {
timer.stop();
seconds = 0;
minutes = 0;
hours = 0;
updateLabel();
} else if (e.getSource() == timer) {
seconds++;
if (seconds == 60) {
minutes++;
seconds = 0;
}
if (minutes == 60) {
hours++;
minutes = 0;
}
updateLabel();
}
}
private void updateLabel() {
String secs = String.format("%02d", seconds);
String mins = String.format("%02d", minutes);
String hrs = String.format("%02d", hours);
label.setText(hrs + ":" + mins + ":" + secs);
}
public static void main(String[] args) {
new TimerApp();
}
}
```
运行该程序,即可看到一个简易的计时器界面,包含了开始、停止、重置功能。用户点击开始按钮后,计时器开始计时,每秒钟更新一次显示,直到用户点击停止按钮。用户点击重置按钮后,计时器重置为零。
该程序使用了Java的Swing库来实现图形化界面,使用了计时器Timer类来实现计时功能。在每秒钟的更新中,程序会检查是否需要更新分钟和小时,然后调用updateLabel()方法来更新显示。该方法使用了String.format()方法来格式化时间字符串,确保时间显示为两位数。
阅读全文