写出Java动态爱心代码
时间: 2023-09-08 16:05:03 浏览: 598
### 回答1:
下面是一个简单的 Java 程序,实现了动态爱心:
```
import java.awt.*;
import javax.swing.*;
public class DynamicHeart extends JFrame {
private int x = 100;
private int y = 100;
private int size = 50;
public DynamicHeart() {
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void paint(Graphics g) {
g.setColor(Color.RED);
int[] xPoints = {x, x + size / 2, x - size / 2};
int[] yPoints = {y + size / 2, y - size / 2, y - size / 2};
g.fillPolygon(xPoints, yPoints, 3);
x += 2;
y += 2;
size += 2;
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
public static void main(String[] args) {
new DynamicHeart();
}
}
```
这段代码中,我们继承了 `JFrame` 类,实现了一个动态的爱心。通过调整爱心的位置和大小,以及通过 `repaint` 函数不断地重绘,达到动态效果。
### 回答2:
Java动态爱心代码是一种利用Java编程语言实现动态生成爱心图案的程序。下面提供一个简单的示例代码来展示如何实现:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DynamicHeart extends JPanel {
private int angle = 0;
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
int width = getWidth();
int height = getHeight();
int centerX = width / 2;
int centerY = height / 2;
int radius = Math.min(width, height) / 4;
int x = centerX - (int) (radius * Math.sin(Math.toRadians(angle)));
int y = centerY - (int) (radius * Math.cos(Math.toRadians(angle)));
g2d.setColor(Color.RED);
g2d.fillOval(centerX - radius, centerY - radius, 2 * radius, 2 * radius);
g2d.fillArc(centerX - radius, centerY - radius, 2 * radius, 2 * radius, 0, 180);
g2d.fillArc(x, y - radius, 2 * radius, 2 * radius, 180, 180);
angle++;
if (angle >= 360) {
angle = 0;
}
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame("Dynamic Heart");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
DynamicHeart dynamicHeart = new DynamicHeart();
frame.add(dynamicHeart);
frame.setVisible(true);
}
}
```
这段代码使用Java的Swing库创建了一个名为`DynamicHeart`的类,继承自JPanel。在`paintComponent`方法中绘制了一个动态的爱心图案。代码通过每次绘制时调整圆弧的起始角度来产生动态效果。程序使用`Thread.sleep(10)`来控制动画的速度,并通过不断调用`repaint()`方法来实现持续更新。在`main`方法中创建了一个包含`DynamicHeart`实例的JFrame窗口,并显示出来。
你可以运行这段代码,看到一个在窗口中心不断旋转的动态爱心图案。
阅读全文