0

在 JFileChooser 中,当尝试覆盖文件时,我希望我的程序提示用户他将要这样做。

这是在用户按下 JFileChooser 中的 APPROVE_OPTION 时完成的。

但是,我不希望 JFileChooser 立即关闭,但如果这样的文件已经存在,则显示一个 JDialog,如果用户想要覆盖,覆盖,否则关闭 JDialog 并返回到 JFileChooser。

我知道我可以在打开 JDialog 之前保存 JFileChooser 条件,如果用户选择不覆盖,只需使用我保存的信息重新创建整个 JFileChooser。

但我想知道是否有更简单的方法。在那儿?

4

1 回答 1

3

您应该能够覆盖approveSelection() 方法。

final JFileChooser chooser = new JFileChooser( new File(".") )
{
    public void approveSelection()
    {
        if (getSelectedFile().exists())
        {
            System.out.println("Do You Want to Overwrite File?");
            return;
        }
        else
            super.approveSelection();
    }
};

您可以使用 JOptionPane 提示用户,而不是显示消息。如果用户接受,那么您调用 super.approveSelection();

于 2013-02-09T21:05:27.750 回答