如何使用图形在JPanel上绘制

问题描述

我正在研究一个项目,我已经制作了一个菜单一个JPanel,但是现在我想绘制JPanel并在游戏中添加一些HUD。

我正在为游戏的最终面板提供图片,我想在左侧添加一个带有玩家头像的蓝色矩形,并在右侧添加带有动作,金钱等的另一个矩形,但是我想在“窗口”之外构建它们我在其中构造框架和所有JPanels的类。通常,既然玩家选择玩本地游戏,我希望随着游戏的继续在该面板上进行绘制和擦除。

enter image description here

private void render() {
    BufferStrategy bs = this.getBufferStrategy();
    if (bs == null) {
        this.createBufferStrategy(1);
        return;
    }
    
    Graphics g = null;
    
    window.render();
    if (gameState == STATE.MultiPlay) {
        handler.render(g);
        hud.render(g);
    }
    if (gameState == STATE.LocalPlay) {
        handler.render(g);
        hud.render(g);
    }
}

我提供的代码是我在游戏引擎类中使用的渲染方法。使用我的游戏引擎,我使该方法每秒旋转10次,我想从这里实例化Graphics类,然后继续其他类并渲染要绘制的所有内容JPanel

我如何使用JPanel或类似的东西来提取Graphics

解决方法

您必须使用Graphics对象:

Graphics g= bs.getDrawGraphics();

我认为这将非常有用,祝您有愉快的一天。

PD:如果您不想这样做,也可以覆盖方法paint(Graphcis g)并使用参数。