java swing 倒计时功能
时间: 2023-08-02 11:08:56 浏览: 260
在Java Swing中实现倒计时功能,你可以使用`javax.swing.Timer`类来完成。下面是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CountdownTimer extends JFrame {
private Timer timer;
private JLabel timerLabel;
private int timeRemaining;
public CountdownTimer(int seconds) {
timeRemaining = seconds;
timerLabel = new JLabel();
timerLabel.setHorizontalAlignment(SwingConstants.CENTER);
timerLabel.setFont(timerLabel.getFont().deriveFont(48.0f));
updateTimerLabel();
timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (timeRemaining > 0) {
timeRemaining--;
updateTimerLabel();
} else {
timer.stop();
JOptionPane.showMessageDialog(CountdownTimer.this, "倒计时结束");
}
}
});
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("倒计时");
setSize(300, 200);
setLocationRelativeTo(null);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(timerLabel);
startTimer();
}
private void updateTimerLabel() {
int minutes = timeRemaining / 60;
int seconds = timeRemaining % 60;
timerLabel.setText(String.format("%02d:%02d", minutes, seconds));
}
public void startTimer() {
timer.start();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
CountdownTimer countdownTimer = new CountdownTimer(60); // 设置倒计时时间为60秒
countdownTimer.setVisible(true);
}
});
}
}
```
这个示例代码创建了一个带有倒计时功能的Swing窗口,使用`javax.swing.Timer`类来实现计时功能。在构造函数中,设置了倒计时的初始时间,并创建了一个`JLabel`来显示倒计时时间。通过在`Timer`的`actionPerformed`方法中更新时间并更新`JLabel`来实现倒计时的效果。在倒计时结束时,弹出一个提示框来通知用户。最后,通过调用`startTimer`方法来开始倒计时。你可以根据自己的需求调整代码并添加其他的Swing组件来完成更复杂的倒计时功能。
阅读全文