强制文件已存在的java文件选择器

时间:2012-05-16 19:31:24

标签: java swing jfilechooser

经过一段谷歌搜索后,我没有看到这一点。是否有一些“通用”方法强制用户选择“已存在”的文件

我可以添加类似的东西 http://coding.derkeiler.com/Archive/Java/comp.lang.java.help/2004-01/0302.html或类似JFileChooser with confirmation dialog,但有一些规范方式吗?

感谢。

3 个答案:

答案 0 :(得分:2)

听起来你想要一个“开放”的行为,但是一个确认按钮,上面写着“保存”而不是“打开”。

您可以通过此方法执行此操作: http://docs.oracle.com/javase/6/docs/api/javax/swing/JFileChooser.html#showDialog%28java.awt.Component,%20java.lang.String%29

传入“保存”以获取approveButtonText参数。

答案 1 :(得分:2)

首先,你需要检查你的更好的选择是choser.showOpenDialog还是showSaveDialog

保存对话框将允许您选择指定路径中的任何名称,它可能是不存在的文件,但打开将始终接受所选文件..您可以安全地添加file.exists()以确保该文件存在。您还可以更改按钮的文本..对话框..等..

JFileChooser chooser = new JFileChooser();
    chooser.setApproveButtonText("Save");
    int result = chooser.showOpenDialog(null);
    if(result == JFileChooser.APPROVE_OPTION){
        File selection = chooser.getSelectedFile();
        //verify if file exists
        if(selection.exists()){
            //you can continue the code here or call the next method or just use !exists and behavior for wrong file
        }else{
            //System.exit(0), show alert.. etc
        }
    }

答案 2 :(得分:2)

这很简单:

JFileChooser fc = new JFileChooser();
while(true)
{
    if(fc.showSaveDialog(null) == JFileChooser.APPROVE_OPTION &&
      !fc.getSelectedFile().exists())
        JOptionPane.showMessageDialog(null, "You must select an existing file!");
    else break;
}