# Repaint flackert!!!



## Schlagdraufunschluss_124 (27. Jan 2018)

Ich bins schon wieder 

Meine repaint Methode flackert - Ich hab nachgelesen, dass man die Methode irgendwie in ein Timer packen soll, aber bei mir ist sie schon in einer GameLoop drin 


```
public class Spiel implements Runnable {

    Data data;
    Gui gui;
    public final int fps = 60;
    public final long maxLoop = 1000 / fps;
    private boolean isRunning = true;

    public Spiel(Data data) {
        this.data = data;
        init();
        Gui gui = new Gui(data);
        this.gui = gui;
        new Thread(this).start();
    }

    @Override
    public void run() {

        long oldTime;
        long curTime;

        while (isRunning) {
            oldTime = System.currentTimeMillis();
            update();
            render();
            curTime = System.currentTimeMillis();

            if ((curTime - oldTime) > maxLoop) {
                continue;
            } else {
                try {
                    Thread.sleep(maxLoop - (curTime - oldTime));
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    public void update() {

        }

    public void render() {
        System.out.println("Zeichne");
        gui.repaint();
    }
   
    public void init(){
        new GameLevel(data);
       
        InitData initData = new InitData(data);
        initData.initPics();
       
    }

}
```

Was kann man da tun ?


----------



## JuKu (7. Feb 2018)

Die Lösung lautet "Double Buffering".
Da du wahrscheinlich mit Swing arbeitest, hilft dir dieser Link wahrscheinlich weiter:
http://www.tutego.de/java/articles/Doppelpufferung-Java-Double-Buffering.html


----------

