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