java swing 实现一个倒计时的组件
时间: 2023-12-08 18:06:07 浏览: 143
拳击训练、比赛倒计时工具基于javaswing开发.zip
你可以使用`javax.swing.Timer`类来实现倒计时组件。以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CountdownComponent extends JComponent {
private int secondsRemaining;
private Timer timer;
public CountdownComponent(int seconds) {
this.secondsRemaining = seconds;
setupTimer();
}
private void setupTimer() {
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
secondsRemaining--;
if (secondsRemaining <= 0) {
timer.stop();
}
repaint();
}
};
timer = new Timer(1000, taskPerformer);
timer.start();
}
@Override
public Dimension getPreferredSize() {
return new Dimension(100, 50);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.setFont(new Font("Arial", Font.BOLD, 20));
g.drawString(String.valueOf(secondsRemaining), 40, 30);
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CountdownComponent countdownComponent = new CountdownComponent(60);
frame.add(countdownComponent);
frame.pack();
frame.setVisible(true);
}
}
```
在这个示例中,`CountdownComponent`类继承自`JComponent`,用于绘制倒计时数字。在构造函数中,你可以传入你所需的倒计时时间(以秒为单位)。
倒计时数字会每秒减少一次,并在组件上绘制出来。当倒计时结束时,定时器会停止。
在`main`方法中,创建一个`JFrame`并将`CountdownComponent`添加到其中,然后显示窗口。这样你就可以看到倒计时组件的效果了。
阅读全文