我想存储我的JPanel的当前外观,以便将其重新用作我游戏循环的下一次迭代的背景。我尝试过在互联网上提到的几件事,但我想以一种非常简单的方式来做。 我目前正在使用它来讲述JPanel的当前形象:
if(needImage){
Graphics g = tmp.getGraphics();
g = getGraphics();
needImage = false;
}
这是为了绘制它:
g.drawImage(tmp, 0, 0, this.getWidth(), this.getHeight(), null);
有什么想法吗?
修改
我在Can I create a BufferedImage from a JPanel...找到了这种方法:
private BufferedImage getScreenShot(JPanel panel){
BufferedImage bi = new BufferedImage(
panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_ARGB);
panel.paint(bi.getGraphics());
return bi;
}
但它不能正常工作。我在循环中绘制了1个像素的大矩形,以便在使用移动键时绘制线条,但它似乎只能使用此方法捕获最后一个点。
g.setColor(new Color(hexaR, hexaV, hexaB));
g.fillRect(x, y, 1, 1);
我已经拍了一些屏幕截图来向您展示结果: 原文:
原始图片
经过一些修改后的图片
正如您所看到的,原始图像已被删除,但它仍然是"光标的最后一点" (键盘的x和y输入)。基本上,我想要它做的是当我按空格时停止画线,但我希望能够看到我移动的点在哪里。
我不知道是否清楚,请告诉我。我会尽力提供更清晰的解释。