复制
收藏
提问
全网
用java写一个爱心代码
1个月前
理解问题用java写一个爱心代码
已完成理解「用java写一个爱心代码」
展开阅读网页
用Java实现跳动爱心的代码如下。1
import javax.swing.*;
import java.awt.*;
public class HeartFrame extends JFrame {
private static final int WIDTH = 300;
private static final int HEIGHT = 300;
private static final String HEART = "\u2764";
private static final String SPACE = " ";
private final JLabel label;
private boolean isHeart = true;
public HeartFrame() {
setSize(WIDTH, HEIGHT);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new FlowLayout());
setLocationRelativeTo(null);
label = new JLabel();
setTitle("你被骗了哈哈哈");
label.setFont(new Font(Font.MONOSPACED, Font.BOLD, 200));
label.setForeground(Color.RED);
add(label);
// 启动线程,每隔0.1秒切换一次爱心和空格
new Thread(() -> {
while (true) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
if (isHeart) {
label.setText(SPACE);
isHeart = false;
} else {
label.setText(HEART);
isHeart = true;
}
}
}).start();
}
public static void main(String[] args) {
HeartFrame frame = new HeartFrame();
frame.setVisible(true);
}
}
💻 代码说明
- 创建窗口:定义一个
JFrame
窗口,设置大小、关闭操作和布局。 - 标签显示:创建一个
JLabel
用于显示爱心或空格。 - 线程控制:使用线程每隔0.1秒切换显示内容,实现跳动效果。
🖼️ 实现效果
程序运行后,窗口中会显示一个跳动的红色爱心字符。
更专业一些
转笔记
专业
用java写一个爱心代码不在提醒
在Java中实现一个跳动的爱心,可以通过多种方式来完成,包括字符打印、图形界面绘制等。下面将详细介绍几种实现方法。
😊字符打印爱心
字符打印爱心:通过控制台输出特定字符组合来形成爱心形状。
public class Heart {
public static void main(String[] args) {
for (int i = 0; i < 6; i++) {
for (int j = 0; j < 7; j++) {
if (i == 0 && j % 3 != 0 || i == 1 && j % 3 == 0 || i - j == 2 || i + j == 8) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println();
}
}
}
这段代码通过嵌套循环打印出爱心的形状。4
😊图形界面绘制爱心
图形界面绘制爱心:使用Java的Swing或AWT库来绘制爱心。
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
public class HeartFrame extends JFrame {
public HeartFrame() {
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new HeartPanel());
}
public static void main(String[] args) {
HeartFrame frame = new HeartFrame();
frame.setVisible(true);
}
}
class HeartPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int xCenter = this.getWidth() / 2;
int yCenter = this.getHeight() / 2;
// 绘制爱心
g.setColor(Color.RED);
g.fillOval(xCenter - 100, yCenter - 90, 200, 180);
g.fillOval(xCenter - 40, yCenter - 30, 200, 180);
}
}
这段代码创建了一个简单的图形用户界面,其中包含一个自定义的JPanel
,该面板重写了paintComponent
方法来绘制一个爱心。4
😊动画效果实现
动画效果实现:通过改变爱心的位置或颜色来实现跳动效果。
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class HeartAnimation extends JFrame {
private static final int WIDTH = 300;
private static final int HEIGHT = 300;
private static final int UNIT_SIZE = 10;
private static final int DELAY_MS = 100;
private final boolean[][] screen;
private final Timer timer;
public HeartAnimation() {
screen = new boolean[WIDTH / UNIT_SIZE][HEIGHT / UNIT_SIZE];
timer = new Timer(DELAY_MS, new ActionListener() {
public void actionPerformed(ActionEvent e) {
tick();
}
});
timer.start();
this.setSize(WIDTH, HEIGHT);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void tick() {
// 清空屏幕
for (int i = 0; i < screen.length; i++) {
for (int j = 0; j < screen[i].length; j++) {
screen[i][j] = false;
}
}
// 绘制爱心
for (int i = 0; i < screen.length; i++) {
for (int j = 0; j < screen[i].length; j++) {
int a = i - screen.length / 2;
int b = j - screen[i].length / 2;
if (Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(a * 0.7 + b * 0.7, 2) <= Math.pow(WIDTH / 4, 2)) {
screen[i][j] = true;
}
}
}
repaint();
}
@Override
public void paint(Graphics g) {
for (int i = 0; i < screen.length; i++) {
for (int j = 0; j < screen[i].length; j++) {
if (screen[i][j]) {
g.fillRect(j * UNIT_SIZE, i * UNIT_SIZE, UNIT_SIZE, UNIT_SIZE);
}
}
}
}
public static void main(String[] args) {
HeartAnimation game = new HeartAnimation();
game.setVisible(true);
}
}
这段代码创建了一个动画效果,通过定时器不断更新屏幕内容,实现爱心的跳动效果。2
😊HTML实现爱心
HTML实现爱心:使用HTML和CSS来实现爱心效果。