java浪漫烟花代码
时间: 2024-09-14 19:01:16 浏览: 65
Java中的浪漫烟花效果通常指的是动态绘制的图形,可以模拟烟花在空中绽放的过程。这通常是通过处理图形、颜色变化和动画来实现的,结合Java的Swing或JavaFX库。以下是一个简单的例子,使用Swing来创建一个随机闪烁的小点,模拟烟花:
```java
import javax.swing.*;
import java.awt.*;
import java.util.Random;
public class Fireworks extends JFrame {
private static final int N = 100;
private static final int BRIGHTNESS = 255;
private static final long DELAY = 50; // 每次更新间隔毫秒
public Fireworks() {
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setLocationRelativeTo(null);
Random rand = new Random();
for (int i = 0; i < N; i++) {
Point p = new Point(rand.nextInt(getWidth()), rand.nextInt(getHeight()));
Ball ball = new Ball(p, BRIGHTNESS);
add(ball);
}
setVisible(true);
Timer timer = new Timer(DELAY, e -> {
remove(BALLS.get(0)); // 移除最老的球
BALLS.add(new Ball(BALLS.size(), BRIGHTNESS));
});
timer.start();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(Fireworks::new);
}
}
class Ball extends JPanel {
private final Color color;
private final Point position;
private static final int SIZE = 10;
public Ball(Point position, int brightness) {
this.position = position;
this.color = new Color(brightness, brightness, brightness);
setPreferredSize(new Dimension(SIZE, SIZE));
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(color);
g.fillOval(position.x - SIZE / 2, position.y - SIZE / 2, SIZE, SIZE);
}
}
```
这个代码创建了一个`Fireworks`窗口,包含很多随机位置的"Ball"小球,每个球的颜色亮度随时间逐渐降低,给人一种烟花的效果。注意这是一个简化的版本,实际的烟花效果会更复杂,可能包括轨迹变换、爆炸效果等。
阅读全文