Java JFileChooser不处理?

Java JFileChooser不处理?,java,jfilechooser,screen-capture,Java,Jfilechooser,Screen Capture,基本上,我正在制作一个屏幕捕获程序,它使用JFileChooser来选择保存图像的位置 问题是:当我选择使用JFileChooser保存时,它使我的程序永远不会结束。我的意思是,如果在保存后单击主GUI上的x按钮,它将消失但继续运行 我已尝试删除JFileChooser,并将其保存到默认位置,解决了问题,然后我的程序正常关闭 但是,我想使用JFileChooser,但它会让我的程序永远运行吗 这是我的JFileChooser代码 JFileChooser fc = new JFileChoose

基本上,我正在制作一个屏幕捕获程序,它使用
JFileChooser
来选择保存图像的位置

问题是:当我选择使用
JFileChooser
保存时,它使我的程序永远不会结束。我的意思是,如果在保存后单击主GUI上的x按钮,它将消失但继续运行

我已尝试删除
JFileChooser
,并将其保存到默认位置,解决了问题,然后我的程序正常关闭

但是,我想使用
JFileChooser
,但它会让我的程序永远运行吗

这是我的JFileChooser代码

JFileChooser fc = new JFileChooser();
fc.removeChoosableFileFilter(fc.getFileFilter());
FileFilter filter = new FileNameExtensionFilter("JPEG file", "jpg", "jpeg");
fc.setFileFilter(filter);

if ( fc.showSaveDialog( new JFrame() ) == JFileChooser.APPROVE_OPTION ) {
    String filepath = fc.getSelectedFile().getPath();
    filepath += ".jpg";
    File file = new File(filepath);
    try {
        ImageIO.write(capturedImage, "jpg", file);
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    System.out.println(fc.getSelectedFile().getName() + ".jpg successfully saved.");
}

我真的很笨。我找到了问题的答案。我在创建一个全新的JFrame时,我将文件选择器设置为一个,而不是设置为我已经创建的文件选择器

通过替换

fc.showSaveDialog( new JFrame() ) == JFileChooser.APPROVE_OPTION


这是我程序的主窗口。

我真的很笨。我找到了问题的答案。我在创建一个全新的JFrame时,我将文件选择器设置为一个,而不是设置为我已经创建的文件选择器

通过替换

fc.showSaveDialog( new JFrame() ) == JFileChooser.APPROVE_OPTION


这是我程序的主窗口。

我真的很笨。我找到了问题的答案。我在创建一个全新的JFrame时,我将文件选择器设置为一个,而不是设置为我已经创建的文件选择器

通过替换

fc.showSaveDialog( new JFrame() ) == JFileChooser.APPROVE_OPTION


这是我程序的主窗口。

我真的很笨。我找到了问题的答案。我在创建一个全新的JFrame时,我将文件选择器设置为一个,而不是设置为我已经创建的文件选择器

通过替换

fc.showSaveDialog( new JFrame() ) == JFileChooser.APPROVE_OPTION


其中MainWindow。这是我的程序的主窗口。

当您显示
JFileChooser

fc.showSaveDialog(new JFrame()) 
这意味着,如果您的main
JFrame
设置为
DISPOSE\u ON\u CLOSE
您的程序将不存在,因为您仍然拥有空帧。要解决此问题,请执行以下操作:

fc.showSaveDialog(null)


您可能应该将主JFrame上的默认关闭操作设置为
EXIT\u on\u close
例如:
mainJFrame.setDefaultCloseOperation(JFrame.EXIT\u on\u close)
当您显示
JFileChooser
时,您正在创建一个新的
JFrame

fc.showSaveDialog(new JFrame()) 
这意味着,如果您的main
JFrame
设置为
DISPOSE\u ON\u CLOSE
您的程序将不存在,因为您仍然拥有空帧。要解决此问题,请执行以下操作:

fc.showSaveDialog(null)


您可能应该将主JFrame上的默认关闭操作设置为
EXIT\u on\u close
例如:
mainJFrame.setDefaultCloseOperation(JFrame.EXIT\u on\u close)
当您显示
JFileChooser
时,您正在创建一个新的
JFrame

fc.showSaveDialog(new JFrame()) 
这意味着,如果您的main
JFrame
设置为
DISPOSE\u ON\u CLOSE
您的程序将不存在,因为您仍然拥有空帧。要解决此问题,请执行以下操作:

fc.showSaveDialog(null)


您可能应该将主JFrame上的默认关闭操作设置为
EXIT\u on\u close
例如:
mainJFrame.setDefaultCloseOperation(JFrame.EXIT\u on\u close)
当您显示
JFileChooser
时,您正在创建一个新的
JFrame

fc.showSaveDialog(new JFrame()) 
这意味着,如果您的main
JFrame
设置为
DISPOSE\u ON\u CLOSE
您的程序将不存在,因为您仍然拥有空帧。要解决此问题,请执行以下操作:

fc.showSaveDialog(null)


您可能应该将主JFrame上的默认关闭操作设置为
EXIT\u on\u close
例如:
mainJFrame.setDefaultCloseOperation(JFrame.EXIT\u on\u close)

这也是乔治亚理工学院图片类附带的流行文件选择器类的关键问题。我之所以提到这一点,是因为它在全国范围内被intro CS类广泛使用,而且这个bug已经被报道了一段时间,所以这个信息可能与相当多的人有关。这也是乔治亚理工学院图片类附带的流行的FileChooser类的关键问题。我之所以提到这一点,是因为它在全国范围内被intro CS类广泛使用,而且这个bug已经被报道了一段时间,所以这个信息可能与相当多的人有关。这也是乔治亚理工学院图片类附带的流行的FileChooser类的关键问题。我之所以提到这一点,是因为它在全国范围内被intro CS类广泛使用,而且这个bug已经被报道了一段时间,所以这个信息可能与相当多的人有关。这也是乔治亚理工学院图片类附带的流行的FileChooser类的关键问题。我之所以提到这一点,是因为它在全国范围内被intro CS类广泛使用,而且这个bug已经被报道了一段时间,所以这个信息可能与相当数量的人有关。