Java 图像IO写不写

Java 图像IO写不写,java,swing,javax.imageio,Java,Swing,Javax.imageio,基本上,我正在试图保存我在JFrame中编辑过的图像,所以我有一个带有保存项的菜单,我有一个为保存项设置的动作侦听器,一切正常,文件选择器出现,我可以选择我要保存它的位置,唯一的问题是当我点击保存时,它不在那里。这是我的密码,我是不是遗漏了什么 if(e.getSource().equals(Save)){ JFileChooser keep = new JFileChooser(); keep.setSelectedFile(new File ("newIma

基本上,我正在试图保存我在JFrame中编辑过的图像,所以我有一个带有保存项的菜单,我有一个为保存项设置的动作侦听器,一切正常,文件选择器出现,我可以选择我要保存它的位置,唯一的问题是当我点击保存时,它不在那里。这是我的密码,我是不是遗漏了什么

 if(e.getSource().equals(Save)){
        JFileChooser keep = new JFileChooser();
        keep.setSelectedFile(new File ("newImage.jpg"));
        FileNameExtensionFilter  filters = new FileNameExtensionFilter("jpeg", "jpg");
        keep.setFileFilter(filters);
        File output = keep.getSelectedFile();

        int count = keep.showSaveDialog(keep);
        BufferedImage out = filteredImage;

        if (count == JFileChooser.CANCEL_OPTION){

        }
        else{
            try{
                ImageIO.write(out, "jpg", output);

                //I put this here to see if I was even reaching the method
                System.out.println("writing method");
            }catch(Exception d){
            }
        }
    }

因此,您将获得对所选文件的引用

File output = keep.getSelectedFile();
显示该对话框时出现的错误

int count = keep.showSaveDialog(keep);
BufferedImage out = filteredImage;
然后尝试保存图像

ImageIO.write(out, "jpg", output);
……等等,什么?!假设
getSelectedFile
不是
null
,您如何知道实际保存图像的位置

这个过程应该稍微颠倒一下

showSaveDialog
if (accepted) {
    saveFile = getSelectedFile
    ImageIO.write(img, "jpg", saveFile);
}

作为一个基本的psudo代码示例

“我是否遗漏了什么?”
}catch(异常d){}
“信息!首先将其更改为
}catch(异常d){d.printStackTrace();}
&再次运行代码。为了更快地获得更好的帮助,请发布或。实际上,我有一个JOptionPaneDialog(“您的文件无法保存”),但它也正在打印,但在发布时我将其取出了!抱歉!编辑:我刚刚添加了d.printstacktrace,但它没有打印出来,因此图像IO写入方法正在写入,出于某种原因,它只是没有显示在我保存它的地方鉴于
JFileChooser
可能返回的结果数量,我可能建议您为“快乐路径”编码“首先,可能使用类似于
if(count==JFileChooser.ACCEPT_OPTION){
insteadThank@MadProgrammer我现在会检查编辑:好的,没有改变任何东西,我知道肯定会调用write方法,因为我的syso正在打印到控制台,它只是没有出现在我的桌面上。”。这没有改变任何东西,”可能会改变我兴趣水平的东西是MCVE。它在哪里?我现在才意识到它正在替换原始图像,无论我在哪里保存它,或者保存什么,因为它只是重放了原始图像,这不是我想要的(我也不明白为什么/如何发生)在显示
JFileChooser
之前使用
getSelectedFile
,应该在之后使用它,否则您将获得之前选择的内容(如果有任何问题的话)!!