你好我对java很新,我一直在学习图形我制作的代码显示了一个移动的球,我知道如何轻松。但是当我尝试制作多个球时,我应该如何去做这个问题很复杂,有人可以解释一下吗? 基本上我想用这个代码制作多个球,但我不明白怎么做。 这是我到目前为止的代码:
public class Main {
public static void main(String args[]) {
Ball b = new Ball();
JFrame f = new JFrame();
f.setSize(1000, 1000);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.add(b);
}
}
public class Ball extends JPanel implements ActionListener{
Timer t = new Timer(5 , this);
int x = 0, y = 0,speedx = 2, speedy = 2;
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.CYAN);
g.fillOval(x, y, 20, 20);
t.start();
}
public void actionPerformed(ActionEvent e) {
x += speedx;
y += speedy;
if(0 > x || x > 950){
speedx = -speedx;
}
if(0 > y || y > 950){
speedy = -speedy;
}
repaint();
}
}
答案 0 :(得分:2)
您的paintComponent(...)
方法中没有任何程序逻辑语句。从该方法中删除计时器的start方法。您无法完全控制何时或甚至是否将调用该方法。
如果你想显示多个球,那么给你的GUI一个BallList的ArrayList,然后迭代它们,在paintComponent中绘制它们。将它们移动到计时器中。