用java写一个GUI界面计时器,要求如下:(1)界面:四个按钮"开始","暂停","继续","清零"界面上方居中,时间显示在下方居中,窗口名字为"我的计时器"(2)初始状态:计时器为00时0分0秒,"开始"按钮有效,"暂停"按钮无效,"继续"按钮无效,"清零"按钮无效.(3)单击"开始"按钮后的状态:计时器开始计时,"开始"按钮无效,"暂停"按钮有效,"继续"按钮无效,"清零"按钮有效.(4)单击"暂停"按钮后的状态:计时器暂停计时,"开始"按钮无效,"暂停"按钮无效,"继续"按钮有效,"清零"按钮有效.(5)单击"继续"按钮后的状态:计时器继续计时,"开始"按钮无效,"暂停"按钮有效,"继续"按钮无效,"清零"按钮有效.(6)单击"清零"按钮后的状态:本次计时结束,计时器清零为00时0分0秒"开始"按钮有效,"暂停"按钮无效,"继续"按钮无效,"清零"按钮无效.
时间: 2023-07-07 09:46:37 浏览: 131
java写的计时器
4星 · 用户满意度95%
好的,我可以帮你设计一个Java GUI界面计时器,以下是代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyTimer extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JButton startButton, pauseButton, resumeButton, resetButton;
private JLabel timeLabel;
private Timer timer;
private int hours, minutes, seconds;
public MyTimer() {
setTitle("我的计时器");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new GridLayout(2, 1));
JPanel topPanel = new JPanel();
timeLabel = new JLabel("00:00:00", JLabel.CENTER);
timeLabel.setFont(new Font("Arial", Font.BOLD, 48));
topPanel.add(timeLabel);
add(topPanel);
JPanel bottomPanel = new JPanel();
startButton = new JButton("开始");
startButton.addActionListener(this);
bottomPanel.add(startButton);
pauseButton = new JButton("暂停");
pauseButton.addActionListener(this);
pauseButton.setEnabled(false);
bottomPanel.add(pauseButton);
resumeButton = new JButton("继续");
resumeButton.addActionListener(this);
resumeButton.setEnabled(false);
bottomPanel.add(resumeButton);
resetButton = new JButton("清零");
resetButton.addActionListener(this);
resetButton.setEnabled(false);
bottomPanel.add(resetButton);
add(bottomPanel);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == startButton) {
startButton.setEnabled(false);
pauseButton.setEnabled(true);
resumeButton.setEnabled(false);
resetButton.setEnabled(true);
timer = new Timer(1000, new ActionListener() {
public void actionPerformed(ActionEvent e) {
seconds++;
if (seconds == 60) {
seconds = 0;
minutes++;
}
if (minutes == 60) {
minutes = 0;
hours++;
}
timeLabel.setText(String.format("%02d:%02d:%02d", hours, minutes, seconds));
}
});
timer.start();
} else if (e.getSource() == pauseButton) {
startButton.setEnabled(false);
pauseButton.setEnabled(false);
resumeButton.setEnabled(true);
resetButton.setEnabled(true);
timer.stop();
} else if (e.getSource() == resumeButton) {
startButton.setEnabled(false);
pauseButton.setEnabled(true);
resumeButton.setEnabled(false);
resetButton.setEnabled(true);
timer.start();
} else if (e.getSource() == resetButton) {
startButton.setEnabled(true);
pauseButton.setEnabled(false);
resumeButton.setEnabled(false);
resetButton.setEnabled(false);
timer.stop();
hours = 0;
minutes = 0;
seconds = 0;
timeLabel.setText("00:00:00");
}
}
public static void main(String[] args) {
new MyTimer();
}
}
```
这个计时器界面包括了开始、暂停、继续、清零四个按钮,以及时间显示在下方的标签,同时按照你的要求进行了状态的控制。当点击开始按钮时,计时器开始计时,同时设置暂停和清零按钮为可用状态,开始按钮和继续按钮为不可用状态;当点击暂停按钮时,计时器暂停计时,同时设置开始和清零按钮为不可用状态,暂停和继续按钮为可用状态;当点击继续按钮时,计时器继续计时,同时设置开始和清零按钮为不可用状态,暂停和继续按钮为可用状态;当点击清零按钮时,计时器清零,同时设置所有按钮为不可用状态。
阅读全文