如何存储JPanel的当前图像?

时间:2015-11-18 19:50:24

标签: java swing

我想存储我的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);

我已经拍了一些屏幕截图来向您展示结果: 原文:

原始图片

enter image description here

经过一些修改后的图片

enter image description here

正如您所看到的,原始图像已被删除,但它仍然是"光标的最后一点" (键盘的x和y输入)。基本上,我想要它做的是当我按空格时停止画线,但我希望能够看到我移动的点在哪里。

我不知道是否清楚,请告诉我。我会尽力提供更清晰的解释。

0 个答案:

没有答案