• 自学整理一:java文件对话框的使用(包括文件多选,文件、文件夹同时可选操作)


    老早写的,现在转移阵地

     

    在java中有两种方式调用文件对话框

    (1)一种是AWT中的FileDialog类,通过FileDialog类创建一个对象,该对象即是所需要的对话框,

    例如,FileDialog dialog=new FileDialog(new Frame(),"选择存放位置",FileDialog.LOAD);


     

    这一行代码使用了FileDialog类的其中一个构造函数

    FileDialog(Dialog parent,String title, int mode)       ----------  创建一个具有指定标题的文件对话框窗口,用于加载或保存文件。

    其中最难懂的就是int mode,这是文件对话框的模式选择,有两个字段,如下所示:

    字段摘要  
    static int LOAD
              此常量值指示文件对话框窗口的作用是查找要读取的文件。
     
    static int SAVE
              此常量值指示文件对话框窗口的作用是查找要写入的文件。
     


    最后再通过调用dialog.setVisible(true)方法来使对话框显示到用户面前,由于它是一个模式对话框,当应用程序调用其setVisible(true)方法来显示对话框时,它将阻塞其余应用程序,直到用户选择一个文件。

    这是简单的一个对话框操作,但如果说要需要更加多的操作(例如多文件选择,可以同时选择文件和文件夹)的话,这就要使用到swing中的JFileChooser类了,

    (2)下面来讲通过swing当中的JFileChooser类来创建对话框

    JFileChooser的功能与AWT中的FileDialog基本相似,也是用于生成“打开文件”,“保存文件”的对话框,与FileDoalog不同的是,JFileChooser无须依赖于本地平台的GUI,它由100%纯java实现,在所有平台上具有完全相同的行为,并可以在所有平台上具有相同的外观风格。

    JFileChooser并不是JDialog的子类(API文档中截图如上所示),所以不能使用setVisible(true)来显示该文件对话框,而是调用

    showXxxDialog()方法来显示文件对话框

    构造方法:

    JFileChooser(File currentDirectory,FileSystemView fsv) 
              使用给定的当前目录和 FileSystemView 构造一个 JFileChooser

    currentDirectory:指定所创建文件对话框的当前路径,该参数既可以是一个string类型的路径,也可以是一个File对象所代表的的路径;

    FileSystemView :用于指定基本该文件系统外观来创建文件对话框,如果没有指定该参数,默认以当前文件系统外观创建文件对话框。

    使用JFileChooser来建立一个文件对话框并允许用户选择文件的步骤如下:

    (1)采用构造器创建一个JFileChooser对象,该JFileChooser对象无须指定parent组件,这意味着可以在多个窗口中共用该JFileChooser对象,创建JFileChooser对象时可以初始化路径

    例如:

       //以当前路径创建文件选择器

       JFileChooser addChooser=new JFileChooser(".");

    (2)调用JFileChooser的系列可选方法对JFileChooser执行初始化操作,下面我讲解一些最常用而且使用的方法:

          setMultiSelectionEnabled(true):默认情况下,该文件选择器只能选择一个文件,通过该方法可以设置允许选择多个文件(设置参数为true即可)

          setFileSelectionMode(int mode):默认情况下,该文件选择器只能选择一个文件,通过调用该方法可以设置允许选择文件,选择路径,文件与路径。
                   /  * 设置 JFileChooser,以允许用户只选择文件、只选择目录,或者可选择文件和目录。默认值是 JFilesChooser.FILES_ONLY。

                         参数:
                         mode - 要显示的文件类型: 
                      JFileChooser.FILES_ONLY 
                      JFileChooser.DIRECTORIES_ONLY 
                      JFileChooser.FILES_AND_DIRECTORIES 

                     */

    例如
                    addChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);


    如上图所示,该文件对话框可同时实现文件与文件夹选择和多项同时选中,代码如下:

    JFileChooser addChooser=new JFileChooser();

                    addChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
                    //该方法设置为true允许选择多个文件
                    addChooser.setMultiSelectionEnabled(true);
                    int returnval=addChooser.showOpenDialog(jf);  
                    if(returnval==JFileChooser.APPROVE_OPTION)
                    {
                        File[] files=addChooser.getSelectedFiles();
                        String str="";
                        for (File file : files) {
                            af.add(file);
                            if(file.isDirectory())
                                str=file.getPath();
                            else{
                              str=file.getPath()+file.getName();
                            }
                            jta.append(str+" ");
                            
                        }

                    }
                    
                }

    (3)调用showXxxDialog()方法来打开文件对话框,通常有如下三种方法:

    int  showDialog(Component parent,String approveButtonText):弹出文件对话框,该对话框的标题、”同意“按钮的文本(默认是”保存“或”取消“按钮)由approveButtonText来指定,这就可以自己定义那个按钮的文字在需要的时候

    例如:

                    JFileChooser chooser=new JFileChooser();
                    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

                    int returnval=chooser.showDialog(jf, "选择文件夹");
                    if(returnval==JFileChooser.APPROVE_OPTION)
                    {
                        String str=chooser.getSelectedFile().getPath();
                        targetfoleder.setText(str);
                    }

    int showOpenDialog(Component parent):弹出文件对话框,该对话框具有默认标题,”同意“按钮的文本是”打开“

    int showSaveDialog(Component parent):弹出文件对话框,该对话框具有默认标题,”同意“按钮的文本是”保存“

     

    总结了一些,希望对有所困惑的朋友有点帮助~

  • 相关阅读:
    Java 将File转换为MultipartFile类型
    JAVA中实现根据文件路径下载文件
    Java中类似单元格之间的计算公式解析,如A1+B3-B4
    Java JPA通过hql语句查询数据
    mysql与oracle 表字段定义比较
    Java时间日期DateUtil
    fetch缓存问题
    Vue中watch的简单应用
    关于跨域和如何解决跨域问题的小结
    Google play 一直等待下载?解决方案如此简单!
  • 原文地址:https://www.cnblogs.com/ning1121/p/3738065.html
Copyright © 2020-2023  润新知