1

こんにちは、私は 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();
    }

 }
4

1 に答える 1

2

paintComponent(...)メソッドにプログラムロジックステートメントを含めないでください。そのメソッドからタイマーの開始メソッドを取り除きます。メソッドがいつ呼び出されるか、または呼び出されるかどうかを完全に制御することはできません。

複数のボールを表示したい場合は、GUI にボールの ArrayList を与えてから、それらを繰り返し処理し、paintComponent で描画します。タイマーでそれらを移動します。

于 2013-06-03T02:28:57.107 に答える