用java写一个爱心代码,不断的闪烁。
时间: 2023-08-31 17:36:47 浏览: 97
### 回答1:
您好,这是一份 Java 代码来实现爱心图形的不断闪烁效果:
```
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Heart extends JPanel {
private int x = -50;
private int y = 50;
@Override
public void paint(Graphics g) {
super.paint(g);
g.setColor(Color.RED);
int[] xPoints = {x + 50, x + 15, x + 85, x + 50};
int[] yPoints = {y + 50, y + 100, y + 100, y + 50};
g.fillPolygon(xPoints, yPoints, 4);
try {
Thread.sleep(200);
} catch (InterruptedException e) {
e.printStackTrace();
}
x++;
if (x > getWidth()) {
x = -50;
}
repaint();
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(300, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new Heart());
frame.setVisible(true);
}
}
```
代码的主要思路是继承 JPanel,重写 paint() 方法,在里面绘制爱心图形,然后使用 sleep() 方法让图形间隔一段时间重新绘制。
希望这份代码对您有所帮助。
### 回答2:
下面是一段使用Java编写的爱心代码,以不断闪烁的效果展示:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class HeartBlink extends JFrame {
private JLabel lblHeart;
public HeartBlink() {
setTitle("闪烁的爱心");
setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
lblHeart = new JLabel(new ImageIcon("heart.png")); // 假设有一个名为heart.png的图片文件作为爱心图案
add(lblHeart);
Timer timer = new Timer(500, new HeartAnimation());
timer.start();
setVisible(true);
}
private class HeartAnimation implements ActionListener {
private boolean visible = false;
@Override
public void actionPerformed(ActionEvent e) {
if (visible) {
lblHeart.setVisible(false);
visible = false;
} else {
lblHeart.setVisible(true);
visible = true;
}
}
}
public static void main(String[] args) {
new HeartBlink();
}
}
```
以上代码定义了一个名为`HeartBlink`的`JFrame`窗口类,其中添加了一个`JLabel`标签作为爱心图案。通过`Timer`定时器来实现爱心图案的闪烁效果。每次定时器触发时,通过修改`JLabel`的可见性来产生闪烁效果。代码中的定时器间隔为500毫秒,可根据需求调整。
注意,以上代码需要用到一个名为`heart.png`的图片文件作为爱心图案。可以将一张图片文件命名为`heart.png`并与代码文件放置在同一目录下,或者根据需要修改代码中的图片路径。
### 回答3:
爱心是代表人们间互相关爱的象征,下面是一个用Java编写的爱心代码,会不断闪烁:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class HeartAnimation {
public static void main(String[] args) {
List<String> heartShape = createHeartShape();
blinkHeart(heartShape);
}
public static List<String> createHeartShape() {
List<String> heartShape = new ArrayList<>();
heartShape.add(" *** *** ");
heartShape.add(" ******* *******");
heartShape.add("************************");
heartShape.add(" **********************");
heartShape.add(" *********************");
heartShape.add(" *******************");
heartShape.add(" ****************");
heartShape.add(" ************");
heartShape.add(" ********");
heartShape.add(" ****");
heartShape.add(" **");
return heartShape;
}
public static void blinkHeart(List<String> heartShape) {
Random random = new Random();
while (true) {
System.out.print("\033[H\033[2J"); // 清空控制台内容
System.out.flush();
for (int i = 0; i < heartShape.size(); i++) {
for (int j = 0; j < random.nextInt(70); j++) {
System.out.print(" "); // 输出随机数量的空格
}
System.out.println(heartShape.get(i));
}
try {
Thread.sleep(500); // 等待500毫秒
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这段代码首先定义了一个爱心的形状,然后利用随机数来控制闪烁的效果。在闪烁过程中,首先会清空控制台内容,然后按照爱心的形状逐行输出,并在每一行输出之前添加随机数量的空格。输出完成后,线程会暂停500毫秒,然后再次执行输出操作,从而实现爱心的闪烁效果。
阅读全文