Jframe屏幕闪烁着白色和黑色



我有一个问题,我的jframe经常闪烁白色和黑色,但我只将颜色设置为黑色。我认为这与一定的(运行){} bit有关。

它永远变成白色和黑色,直到我关闭它。我真的不知道发生了什么..我只是刚开始使用Jframe,所以我确定我只是放了一些错误的代码。

public class Game extends Canvas implements Runnable {
    private static final long serialVersionUID = 1L;
    public static int width = 300;
    public static int height = width / 16 * 9;
    public static int scale = 3;
    public static boolean running = false;
    private Thread thread;
    private JFrame frame;
    public Game() {
        Dimension window = new Dimension(width * scale, height * scale);
        setPreferredSize(window);
        frame = new JFrame();
    }
    public synchronized void start() {
        running = true;
        thread = new Thread(this, "Display");
        thread.start();
    }
    public synchronized void stop() {
        try {
            running = false;
            thread.join();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
    public void run() {
        while (running) {
            render();
        }
    }
    public void update() {
    }
    public void render() {
        BufferStrategy buffer = getBufferStrategy();
        if (buffer == null) {
            createBufferStrategy(3);
            return;
        }
        Graphics g = buffer.getDrawGraphics();
        g.setColor(Color.BLACK);
        g.drawRect(0, 0, getWidth(), getHeight());
        g.dispose();
        buffer.show();
    }
    public static void main(String[] args) {
        Game game = new Game();
        game.frame.setResizable(false);
        game.frame.setTitle("Game");
        game.frame.add(game);
        game.frame.pack();
        game.frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        game.frame.setLocationRelativeTo(null);
        game.frame.setVisible(true);
        game.start();
    }
}

我自己解决了...我使用了drawRect(),我读了文档页面,它说它只绘制矩形的轮廓..所以我只是drawRect()我也将缓冲区更改为2。

很抱歉浪费时间。

最新更新