sag mir mal was repaint ist
[c]import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import java.util.Random;
public class Snake
extends JFrame
implements KeyListener
{
KeyEvent blia;
int x = 50;
int y = 60;
int anz = 2;
int fx; int fy;
int[] dx = new int[100000];
int[] dy = new int[100000];
int i = anz;
int a = 0;
boolean gefangen = true;
String taste = new String();
char c;
private Timer tim;
public void draw() {
}
public Snake()
{
setTitle("Snake");
addKeyListener(this);
setUndecorated(true);
pack();
setSize(500,500);
setVisible(true);
}
public void paint(Graphics g)
{
if(gefangen) {
randomIT();
gefangen = !gefangen;
}
g.setColor(Color.blue);
g.fillRect(fx, fy, 10, 10);
Color defaultColor = getBackground();
//g.drawOval(50, 50, 30, 15);
g.setColor(defaultColor);
System.out.println(fx+" : "+fy+" --- "+x+" : "+y);
g.fillRect(dx[i-anz], dy[i-anz], 10, 10);
g.setColor(Color.red);
for (int m = 1; m<anz; m++) {
if(x == dx[i-m] && y == dy[i-m] && a > 1){
g.setColor(defaultColor);
g.fillRect(0, 0, 500, 500);
seLo();}
else g.fillRect(dx[i-m],dy[i-m], 10, 10);
}
g.fillRect(x,y, 10, 10);
//g.drawString(taste, 200, 100);
if (x == fx && y == fy) { gefangen = !gefangen; anz++; }
dx
= x;
dy[i] = y;
i++;
a++;
g.dispose();
}
public void seLo() {
anz=2;
i=anz;
repaint();
}
public void randomIT() {
DecimalFormat df = new DecimalFormat();
df.setMaximumIntegerDigits(3);
Random r1= new Random();
Random r2 = new Random();
fx = Integer.parseInt(df.format(r1.nextInt()));
fy = Integer.parseInt(df.format(r2.nextInt()));
if (fx < 0) fx = fx * (-1);
if (fy < 0) fy = fy * (-1);
if (fx > 480) fx = fx - 500;
if (fy > 480) fy = fy - 500;
if (fx < 0) fx = fx + 200;
if (fy < 0) fy = fy + 200;
fx = fx-(fx%10);
fy = fy-(fy%10);
}
public void keyPressed(KeyEvent event)
{
try {
int t = event.getKeyCode();
taste = event.getKeyText(t);
if(event.getKeyCode() == 39)
{
while(true) {
x = x + 10;
if (x==500) x=0;
repaint()
}
}
else if(event.getKeyCode() == 37)
{
x = x - 10;
if (x<0) x=500;
}
else if(event.getKeyCode() == 3
{
y = y - 10;
if (y<0) y=500;
}
else if(event.getKeyCode() == 40)
{
y = y + 10;
if (y==500) y=0;
}
repaint();
} catch (Exception e) {}
}
public void keyReleased(KeyEvent event)
{
System.out.println("keyReleased: "+taste);
//repaint();
}
public void keyTyped(KeyEvent event)
{
System.out.println("keyTyped: "+taste);
//repaint();
}
public static void main(String[] args)
{
Snake s = new Snake();
}
}
[/c]
99-103 geht nicht, Programm hängt. 
auch mittm Thread.sleep gehts nicht.