-3

Timer クラスを使用して、別のクラスのメソッドをループするように actionPerformed を取得しようとしています。これにより、オブジェクトが再描画され、画面上を移動しているように見えます。actionPerformed が起動しているかどうかを確認する System.out.println ステートメントを追加しました。テキストは表示されていますが、オブジェクトが画面上を移動しているようには見えません。何が間違っているのかわかりません。

//これは、配列にしたボール クラスです。timer.start() はコンストラクターにあります

public void actionPerformed (ActionEvent e)
{
    for(int i = 0; i < bl.length; i++)
    {
    bl[i].move();
    System.out.println("Fired");
    repaint();
    }
}

//これは、画面上でオブジェクトを移動する移動クラスです。x=0 および移動 =5.

public void move()
{
    x = x + move;
}
4

1 に答える 1

1

メソッドで、呼び出されmove()た変数を追加しようとしましたが、定義も渡されていません。これを試して:movexmove

bl[i].move(5,0);

public int move(int move,int x)
{
x += move;
return x;
}

編集:そういえば、x定義も渡されていません。コードを編集しました。

于 2013-06-01T09:12:45.390 に答える