JFileChooser选择空文件

And*_*rea 5 java swing jfilechooser

我正在使用JFileChooser作为JTable单元的编辑器.我希望用户使用JFileChooser选择一个有效的文件,然后当他们按Enter键时,文件路径将保存到单元格中.如果他们想要清除细胞,则会出现问题.所以我希望他们清除JFileChooser,然后用空字符串设置单元格(或者为null,无论哪个).

我的问题是,如果您没有选择文件,则无法按"批准"按钮.在我的代码中,"空!" 永远不会打印.有没有办法在没有选择文件时允许选择批准按钮?这是我尝试过的:

JFileChooser component = new JFileChooser(){
        public void approveSelection(){
            File f = getSelectedFile();
            if(f==null){
                System.out.println("empty!");
                return;
            }else{
                if(!f.exists()){
                    System.out.println("does not exist!");
                }else{
                    super.approveSelection();
                }

            }
        }
    };
Run Code Online (Sandbox Code Playgroud)

oth*_*man 4

您可能有兴趣覆盖 JFileChooser cancelSelection() 方法,该方法在用户取消文件选择时调用。

也许使用 JFileChooser 选择空文件名来进行 JTable 单元格清除并不直观且用户友好。最好在 JTable 单元格旁边有一个小按钮,以便在用户单击它或任何其他选项来重置单元格值时清除单元格值,并且仅使用 JFileChooser 更改单元格中的文件路径。

  • +1的想法是有一个单独的按钮来清除单元格。选择取消实际上应该只是将单元格恢复到 JFileChooser 打开之前的状态。 (2认同)