ここで私のボールアニメーションの問題は、ボールがトレイルの後ろをまっすぐに動いていることです。私の予想される結果は、ボールの軌跡がないはずだということです。Java Mutithreading Ball Animation
コードは、X軸に沿ってわずかに一方向にボールの動きを決定します。あなたのpaint
方法でsuper.paint
を呼び出すために逃した
public class App extends JFrame implements Runnable{
int x=0,y=250;
public void run() {
for(;;) {
try {
repaint();
x++;
Thread.sleep(10);
} catch(Exception e){}
}
}
public void paint(Graphics g) {
g.drawOval(x,y,30,30);
}
public static void main(String[] args) {
App frame= new App();
frame.setTitle("Bounce");
frame.setSize(400, 450);
frame.setVisible(true);
Thread t1 = new Thread(frame);
t1.start();
}
}
[次のペイントで消えない四角形を描く](http://stackoverflow.com/questions/12683533/drawing-a-rectangle-that-wont-disappear-in-next-paint)あなたの問題は何か、それをどのように修正するか。その "trail"を取り除くには、 'paintComponent(Graphics g)'と 'super.paintComponent(g)'を呼び出す必要があります。 – Obicere
これは一般的に非常に悪いアプローチです。全GUIはEDTの外で実行されます。 –