java爱心代码动态

2023-12-21 10:36:27

以下是一个简单的Java代码示例,可以生成动态的爱心图案:

  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import javax.swing.JFrame;
  4. import javax.swing.JPanel;
  5. public class HeartAnimation extends JPanel implements Runnable {
  6. ????private static final long serialVersionUID = 1L;
  7. ????private int x = 0;
  8. ????private int y = 200;
  9. ????private int size = 100;
  10. ????private int sleepTime = 10;
  11. ????private int moveX = 1;
  12. ????private int moveY = 1;
  13. ????private Color color = Color.RED;
  14. ????public HeartAnimation() {
  15. ????????Thread t = new Thread(this);
  16. ????????t.start();
  17. ????}
  18. ????public void run() {
  19. ????????while (true) {
  20. ????????????x += moveX;
  21. ????????????y += moveY;
  22. ????????????if (x <= 0 || x >= getWidth() - size) {
  23. ????????????????moveX *= -1;
  24. ????????????}
  25. ????????????if (y <= 0 || y >= getHeight() - size) {
  26. ????????????????moveY *= -1;
  27. ????????????}
  28. ????????????try {
  29. ????????????????Thread.sleep(sleepTime);
  30. ????????????} catch (InterruptedException e) {
  31. ????????????????e.printStackTrace();
  32. ????????????}
  33. ????????????repaint();
  34. ????????}
  35. ????}
  36. ????protected void paintComponent(Graphics g) {
  37. ????????super.paintComponent(g);
  38. ????????g.setColor(color);
  39. ????????g.fillArc(x, y - size / 2, size, size, 0, 180);
  40. ????????g.fillArc(x - size / 2, y - size / 2, size, size, 0, 180);
  41. ????????g.fillRect(x - size / 2, y, size, size);
  42. ????}
  43. ????public static void main(String[] args) {
  44. ????????JFrame frame = new JFrame();
  45. ????????frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  46. ????????frame.setSize(800, 600);
  47. ????????frame.add(new HeartAnimation());
  48. ????????frame.setVisible(true);
  49. ????}
  50. }

这段代码使用Java Swing库来创建一个窗口,并在窗口中绘制一个动态的爱心图案。通过调用fillArcfillRect方法,我们可以绘制出爱心的形状。在run方法中,我们更新爱心的位置,并在必要时改变其移动方向。通过调用repaint方法,我们告诉Java Swing库重新绘制组件,从而更新爱心在窗口中的位置。

方向。这使得爱心在窗口内移动,形成动态的效果。

要运行此代码,请将其粘贴到名为“HeartAnimation.java”的文件中,并使用Java编译器编译它。然后,通过运行“java HeartAnimation”来启动程序。

请注意,由于Java Swing是事件驱动的,因此主线程在创建窗口后立即返回。因此,爱心图案的动画效果是在一个单独的线程中运行的,该线程在构造函数中启动。

此外,这个程序使用了Java的异常处理机制来处理线程睡眠时可能出现的任何中断异常。

在上面的代码中,我们使用了 Thread.sleep(sleepTime)?来让线程暂停一段时间,这样可以让爱心图案以一定的速度移动。 sleepTime?变量定义了每次移动之间的暂停时间,以毫秒为单位。可以根据需要调整这个值来控制动画的速度。

我们还使用了 moveX?和 moveY?变量来控制爱心的移动方向。当这些变量的值为1时,爱心向右或向下移动;当它们的值为-1时,爱心向左或向上移动。当爱心到达窗口的边界时,我们会改变这些变量的值,使得爱心会改变方向并继续移动。

另外,我们还使用了 color?变量来控制爱心的颜色。你可以通过修改这个变量的值来改变爱心的颜色。

总的来说,这个Java程序通过在JPanel上绘制一系列的弧线和矩形,来创建一个动态的爱心图案。我们使用一个单独的线程来控制爱心的移动,并使用异常处理来处理任何可能的中断异常。通过调整变量的值,你可以控制动画的速度和爱心的颜色。

文章来源:https://blog.csdn.net/jiazi1024/article/details/135122610
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。