如何避免.getSelectedFile过早选择?

问题描述

即使选择了“取消”选项,.getSelectedFile()函数仍会从文件选择器中选择一个文件夹。有其他功能吗?像getopenedFolder()一样?我将不胜感激任何帮助。这是我的代码

        boolean flag = false;
        fc.setCurrentDirectory(new java.io.File("C:/Users/michaelartichoke/Desktop"));
        fc.setDialogTitle("PDF Manager");
        fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
        fc.showOpenDialog(null);
        
        chosenfolder = fc.getSelectedFile();
        try{
            folderpath = chosenfolder.getAbsolutePath();
            flag = true;
        } catch(Exception e){
            //
        }
        
        if(flag!=false){
            selecting();
        }

仅供参考,selection()是创建数据库的命令。

解决方法

您需要查看showOpenDialog()返回的结果,以查看用户是否选择了“打开”:

int res = fc.showOpenDialog(null);
if (res==JFileChooser.APPROVE_OPTION) {
    // User picked 'Open"
    chosenfolder = fc.getSelectedFile();
    // ...
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...