用JAVA写一个生日快乐,有蛋糕倒计时最后有烟花的动画
时间: 2024-10-21 19:05:13 浏览: 17
在Java中创建一个简单的生日快乐倒计时动画并伴有烟花效果,通常涉及到Swing库或JavaFX来进行图形用户界面设计。这里是一个简化的例子,使用Swing实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BirthdayAnimation extends JFrame {
private JLabel messageLabel;
private int countdown = 60; // 倒计时秒数
public BirthdayAnimation() {
setTitle("Happy Birthday!");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建消息标签
messageLabel = new JLabel("Happy " + countdown + " seconds left!");
add(messageLabel, BorderLayout.NORTH);
// 设置倒计时操作
Timer timer = new Timer(1000, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if (countdown > 0) {
countdown--;
messageLabel.setText("Happy " + countdown + " seconds left!");
} else {
stopTimer();
fireworks(); // 调用烟花动画
}
}
});
timer.start();
setVisible(true);
}
private void stopTimer() {
timer.stop();
}
// 简单的烟花动画示例(实际应用可能需要更复杂的动画库)
private void fireworks() {
for (int i = 0; i < 5; i++) { // 演示5次烟花绽放
Random random = new Random();
int x = random.nextInt(400);
int y = random.nextInt(200);
messageLabel.setIcon(new ImageIcon("firework.png")); // 假设有一个名为firework.png的烟花图片
try {
Thread.sleep(random.nextInt(500)); // 随机延时
} catch (InterruptedException e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(() -> messageLabel.setIcon(null)); // 回到默认图标
}
}
public static void main(String[] args) {
new BirthdayAnimation();
}
}
```
这个程序会在JFrame上显示倒计时,并每秒减少一次,直到计时结束,然后展示烟花效果。注意,你需要一个名为"firework.png"的烟花图片放在项目的资源目录下。
阅读全文