使用paintComponents()时组件出现故障

时间:2015-05-19 00:47:34

标签: java graphics jbutton frame

我使用paintComponents()来绘制JButtons同时绘制其他东西。它可以工作,但是我看到它一次又一次地绘制了一个按钮,当它被使用时,在右上方一瞬间。我用来绘制框架的代码如下。每当我打开一个JFileChooser时,我都会看到一些按钮被绘制到那个框架上,也是如此。

public void run() {
        if(job) {
            GameStateManager.swapState(GameStateManager.stateMainMenu);
        } else {
            screen = frame.createVolatileImage(pixel.width,
                    pixel.height);
        }
        while(isRunning) {
            if(job) {
                tick();
            } else {
                render();
            }
            try {
                Thread.sleep(speed);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

public void render() {
    Graphics g = screen.getGraphics();

    frame.paintComponents(g);
    GameStateManager.render(g);

    g = frame.getGraphics();
    g.drawImage(screen, 0, 0, frame.getWidth(),
            frame.getHeight(), 0, 0, pixel.width, pixel.height,
            null);
    g.dispose();
}

0 个答案:

没有答案