如何使用 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)并使用参数。
我正在做一个项目,我已经制作了一个菜单和一个 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)并使用参数。