JFileChooser作为JDialog的父级

时间:2013-02-09 20:55:39

标签: java swing jdialog jfilechooser

在JFileChooser中,当我试图覆盖文件时,我希望我的程序提示用户他将要执行此操作。

当用户在JFileChooser中按下APPROVE_OPTION时,就会这样做。

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

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

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

1 个答案:

答案 0 :(得分: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();