Hallo,
Ich habe ein kleines Programm entwickelt, wo der Ball immer am Frame Ende in die andere Richtung geht, so sieht der Code aus:
Mein Problem dabei ist, das der Ball immer wieder gezeichnet wird und der vorherige sozusagen nicht gelöscht wird, so dass man immer nur "einen" sieht. Warum???
Ich habe ein kleines Programm entwickelt, wo der Ball immer am Frame Ende in die andere Richtung geht, so sieht der Code aus:
Java:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JOptionPane;;
public class Ball extends JFrame implements Runnable {
private static final long serialVersionUID = -7732404558283274691L;
private double x = 225, y = 275, radius = 20;
private double speedY = 5.0;
public static void main(String[] args){
Ball frame = new Ball();
frame.setVisible(true);
new Thread(frame).start();
}
public Ball(){
setTitle("Ball");
setBounds(100,100,500,600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g){
g.setColor(Color.RED);
g.fillOval((int) x, (int) y, (int) radius*2, (int) radius*2);
}
public void run() {
while(true){
try{
y += speedY;
if(y >= getHeight()-radius*2){
speedY = -speedY;
}
repaint();
Thread.sleep(20); //20ms
}
catch(InterruptedException e){
JOptionPane.showMessageDialog(null, "Error: " +e, "Fehler!", JOptionPane.ERROR_MESSAGE);
}
}
}
}