2011-06-08 40 views
3

我有一个由很多JLabels组成的JPanel。所以没有任何油漆,只有JLabels具有不同的背景颜色等。 JPanel是可见的。将JPanel转换成PNG或其他图像文件

如何将此JPanel转换为图像文件?图像文件将与屏幕上显示的JPanel图片完全一致。

(理想的情况下,该程序将创建一个.png和将其保存到该程序中或甚至由用户选择不同的文件夹相同的文件夹。)

任何建议,将不胜感激。谢谢!

----这是Cherie,未注册,所以我无法回到我的帐户选择Stas的答案作为答案。这就是为什么我不回复...无论如何,感谢您的帮助。 Cherie

+0

好,编程?用户点击一个按钮,图像被创建并保存。 – Cherie 2011-06-08 19:25:34

回答

2

java.awt.Robot类可以获取屏幕转储,然后可以将其放在需要它的位置供以后使用。

+0

我认为机器人是我正在寻找的。谢谢。 – Cherie 2011-06-08 19:26:22

4

Screen Image将选择创建图像的最佳方式。

BufferedImage bi = ScreenImage.createImage(panel); 
ScreenImage.writeImage(bi, "panel.png"); 
+0

即使没有任何东西被绘,它是否工作? – Cherie 2011-06-08 19:27:05

+1

@Cherie,那么当你真正尝试过代码时会发生什么?它需要两行代码,一个用于创建图像,另一个用于保存图像。 – camickr 2011-06-08 19:56:53

3

这样的:

BufferedImage image = new Robot().createScreenCapture(new Rectangle(panel.getLocationOnScreen().x, panel.getLocationOnScreen().y, panel.getWidth(), panel.getHeight())); 
ImageIO.write(image, "png", file); 

创建这样的文件:

File file = new File("fileName.png"); 
if (!file.exists())file.createNewFile(); 

请我的答案是正确的,如果我回答你的问题:)

+0

谢谢。这应该工作。然而,呃,我如何创建一个新文件?我觉得我对File Class的工作方式有点困惑。 – Cherie 2011-06-08 19:31:16