如何在java中将DataFlavor[]保存为图像文件?

如何在java中将DataFlavor[]保存为图像文件?,java,save,image,Java,Save,Image,考虑到守则: Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); DataFlavor[] flavors = cb.getAvailableDataFlavors(); flavors = cb.getAvailableDataFlavors(); for (DataFlavor flavor : flavors) { System.out.println(flavor

考虑到守则:

    Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
    DataFlavor[] flavors = cb.getAvailableDataFlavors();
    flavors = cb.getAvailableDataFlavors();
    for (DataFlavor flavor : flavors) {
        System.out.println(flavor);
    }
    BufferedImage buff = //  flavors  <- I don't know what to put here to make it working; 
    File file = new File("newimage.png");
    ImageIO.write(buff,"png", file);
如何设置BuffereImage行以将其保存为图片(比如png文件)

谢谢你的帮助

你试过了吗

Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
int n=0
for (DataFlavor flavor : flavors) {
BufferedImage image = (BufferedImage)clipboard.getData(flavor);
File file = new File("image"+ n+".png");
ImageIO.write(image , "png", file);
n++;
}
代码 更新 如何将您的代码用于静态函数

在Java中,它们被称为方法,每个
main
都是静态的

例如返回文件

改变

public static void main(String[] args) throws Exception {
…到…之类的程度

public static File getScreenshot() throws Exception {
…也会改变

ImageIO.write(bi, "png", f);
…到

ImageIO.write(bi, "png", f);
return f;

你好,谢谢你的回答。我编辑我的文章是为了让它更清楚。你看到我的问题了吗?你不知道该把什么放到BuffereImage或DataFlavor中?您是否尝试了这一行:BuffereImage=(BuffereImage)clipboard.getData(flavor);在您的for循环中?我想从DataFlavor[]中,在BuffereImage中“转换它”,但我不知道如何进行转换,如上面更新的问题所示。但是is flavors是一个列表,每个元素可能是单独的图片?非常感谢。我想这将是我的最后一个问题:如何将您的代码用于静态功能?例如,返回一份文件。“非常感谢。”感谢在向上投票时表达得很好。“我想这将是我的最后一个问题”希望我每次听到这句话都能得到一美元鉴于这个问题已经在我的第一次答复中得到了回答,请参阅我在上面更新的最后一句话。我只是不想不礼貌。嗯,我不知道该说什么,因为当全屏没有启动任何东西时,您的代码工作得很好。但一旦我全屏启动一个程序,它就不工作了,文件本身也不会被创建。不知道为什么。实际上,我使用了稍后应该创建的屏幕截图,以及“严重:null java.io.FileNotFoundException:”当全屏显示某个程序时。当全屏没有程序时,文件创建得很好,我可以使用它。我迷路了,我不知道该怎么办了。但我想我不应该再为这件事打扰你了。
ImageIO.write(bi, "png", f);
ImageIO.write(bi, "png", f);
return f;
try {

    Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard();
    BufferedImage img = (BufferedImage)cb.getData(DataFlavor.imageFlavor);
    File file = new File("newimage.png");
    ImageIO.write(img, "png", file);

} catch (Exception e) { throw new RuntimeException(e); }