Реализация двойной буферизации в Java

У меня есть простой холст Java JFrame. Я обновляю то, что на экране, каждые полсекунды или около того, и у меня мерцание. Я хочу реализовать двойную буферизацию, чтобы устранить мерцание, но я новичок в Java и не знаком с тем, как это сделать. Я нашел несколько примеров, но не уверен, как реализовать их методы в моих.

Ниже приведены базовые настройки того, как у меня сейчас все обстоит. Это не мой точный код -, просто пример базовой настройки.

Спасибо за любой толчок в правильном направлении!

public class myCanvas extends Canvas{
    //variables
    Color rectColor=Color.red;

    public myCanvas()
    {
    }

    public void paint(Graphics graphics)
    {
        //initial setup, such as
        graphics.setColor(rectColor);
        graphics.fillRect(X,Y,W,H);
    }
    public static void main(String[] args)
    {
        myCanvas canvas = new myCanvas();
        JFrame frame = new JFrame("GUI");
        frame.setSize(frameWidth,frameHeight);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().add(canvas);
        frame.setVisible(true);
        while(true){
            rectColor=Color.green;
            canvas.validate();
            canvas.repaint();
            Thread.sleep(500);
        }
    }
}
5
задан Simon Sarris 26 July 2012 в 14:54
поделиться