Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将JPanel转换为png或其他图像文件_Java_Image_Swing_Jpanel - Fatal编程技术网

Java 将JPanel转换为png或其他图像文件

Java 将JPanel转换为png或其他图像文件,java,image,swing,jpanel,Java,Image,Swing,Jpanel,我有一个由许多jlabel组成的JPanel。所以根本就没有颜料,只有不同背景颜色的标签等等。JPanel是可见的 如何将此JPanel转换为图像文件?图像文件将是JPanel的图片,与屏幕上显示的完全相同 (理想情况下,程序将创建一个.png,并将其保存到程序所在的同一文件夹中,甚至保存到用户选择的不同文件夹中。) 如有任何建议,将不胜感激。谢谢 ----又是Cherie,未注册,所以我无法回到我的帐户选择stas的答案作为答案。这就是为什么我不回答。。。无论如何,谢谢你的帮助。Cheriej

我有一个由许多jlabel组成的JPanel。所以根本就没有颜料,只有不同背景颜色的标签等等。JPanel是可见的

如何将此JPanel转换为图像文件?图像文件将是JPanel的图片,与屏幕上显示的完全相同

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

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


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

java.awt.Robot类可以进行屏幕转储,然后将其放置在以后需要的位置。

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

BufferedImage bi = ScreenImage.createImage(panel);
ScreenImage.writeImage(bi, "panel.png");
像这样:

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();
创建的文件如下所示:

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

如果我回答了您的问题,请选择我的答案为正确:)

好的,以编程方式?用户点击一个按钮,图像被创建并保存。我想机器人就是我要找的。谢谢,谢谢。这应该行得通。但是呢,呃,我怎么创建一个新的文件呢??我想,我对如何归档类的工作方式有点困惑。@Cherie,那么当您实际尝试代码时发生了什么?它需要两行代码,一行创建图像,另一行保存图像。