gpt4 book ai didi

java - 绘制多个移动图形

转载 作者:行者123 更新时间:2023-11-30 06:26:44 28 4
gpt4 key购买 nike

我已经让这个程序能够使用这两个类绘制一个在屏幕上弹跳的小球的实例

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Ellipse2D;

import javax.swing.JPanel;
import javax.swing.Timer;

public class move extends JPanel implements ActionListener
{
Timer t = new Timer(7, this);
int x = 10, y = 10, velX = 7, velY = 7;

public void paintComponent(Graphics g, Graphics h)
{
super.paintComponent(h);
super.paintComponent(g);
System.out.println(g);
Graphics2D g2 = (Graphics2D) g;
Ellipse2D circle = new Ellipse2D.Double(x, y, 40, 40);
g2.fill(circle);
t.start();
}

public void actionPerformed(ActionEvent e) {
if(x<0 || x > getWidth())
{
velX = -velX;
}
if(y < 0 || y > getHeight())
{
velY = -velY;
}
x += velX;
y += velY;
repaint();
}
}

这个类只是简单地绘制球并提供定时器等的逻辑

import java.awt.Color;
import javax.swing.JFrame;

public class Gui {

public static void main(String[] args)
{
move s = new move();
JFrame f = new JFrame("move");
f.add(s);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(1000, 1000);
f.setTitle("Moving Circle");
f.setBackground(Color.GREEN);
}
}

下一节课只是将它全部放在一个 JFrame 中,这是我所知道的非常简单的东西,但我只是想在同一个 JFrame 中绘制多个实例。我只是想尝试用我的代码知识进行实验,一些要实现的代码示例会很棒。

如何绘制多个运动图形?

最佳答案

这段代码可以有一个 Ball 类,它知道它的位置和大小以及如何将自己绘制到 Graphics 中。

创建每个球时,它们会添加到列表中。在绘制时,迭代列表并绘制每个 Ball

关于java - 绘制多个移动图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14028638/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com