如何使用 Graphics 在 JPanel 上绘图

How to draw on a JPanel using Graphics

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

我正在提供游戏最终面板的图片,我想在左侧添加一个带有玩家头部的蓝色矩形,在右侧添加另一个带有动作、金钱等的矩形,但我想在外部构建它们我的 Window class 我在其中构建框架和所有 JPanel。一般来说,现在玩家已经选择玩本地游戏,我希望能够在游戏继续时在此面板上绘制和擦除。

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);
    }
}

我提供的代码是我在游戏引擎中使用的渲染方法 class。使用我的游戏引擎,我使此方法每秒循环 10 次,我想从这里实例化 Graphics class,然后继续使用另一个 class 并渲染我想要的所有内容画出 JPanel.

我怎样才能用 Graphics 或类似的东西绘制 JPanel

您必须像这样使用 Graphics 对象:

Graphics g= bs.getDrawGraphics();

我认为这会很有用,祝你有愉快的一天。

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