自学整理一: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+"\n");
      
               
 
              
     }

      
         }
      
         
      
     }

(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):弹出文件对话框,该对话框具有默认标题,”同意“按钮的文本是”保存“

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

时间: 2024-11-03 19:36:29

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

vc 添加打开文件对话框并读取文件

转自:http://blog.csdn.net/halibobo520/article/details/3371944 1.创建打开文件对话框:                                   CFileDialog dlg(TRUE,//TRUE是创建打开文件对话框,FALSE则创建的是保存文件对话框                                  ".txt",//默认的打开文件的类型                              

VS2010/MFC对话框:文件对话框

文件对话框 上一讲介绍的是消息对话框,本节讲解文件对话框.文件对话框也是很常用的一类对话框. 文件对话框的分类       文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框.例如,很多编辑软件像记事本等都有“打开”选项,选择“打开”后会弹出一个对话框,让我们选择要打开文件的路径,这个对话框就是打开文件对话框:除了“打开”选项一般还会有“另存为”选项,选择“另存为”后往往也会有一个对话框弹出,让我们选择保存路径,这就是保存文件对话框. 正如上面举

java中文件保存、打开文件对话框

1 package com.soft.test; 2 3 //AWT: FileDialog类 + FilenameFilter类 可以实现本功能 4 //Swing: JFileChooser类 + FileFilter类 可以实现本功能 5 // 6 //该类用来测试打开文件和保存文件的对话框 7 8 import java.awt.*; //为了使用布局管理器 9 import java.awt.event.*;//用来处理事件 10 import javax.swing.*; //最新的

ASP.NET—016:ASP.NET中保存文件对话框

本想在asp.net中使用savediallog保存文件,结果提示:当应用程序不是以 UserInteractive 模式执行时显示模式对话框或窗口是无效操作. 在ASP.NET中使用例如以下方式.保存文件.以下样例,保存一个excel文件. Response.ContentType = @"application/x-xls"; Response.AppendHeader("Content-Disposition", "attachment; filen

文件对话框

JFileChooser类可以创建文件对话框 有下列保存和打开两个方法 showSaveDialog(Component a); showOpenDialog(Component a); 参数a是文件对话框的位置,null是在屏幕的中央,this在窗口中央 用户操作对话框的"确定","取消","关闭"的时候,上面方法都会返回两个常量 JFileChooser.APPROVE_OPTION JFileChooser.CANCEL_OPTION 如果

Python2.X和Python3.X文件对话框、下拉列表的不同

Python2.X和Python3.X文件对话框.下拉列表的不同 今天初次使用Python Tkinter来做了个简单的记事本程序.发现Python2.x和Python3.x的Tkinter模块的好多内置函数都有所改变,这里简单整理一下以备日后查验. 一.导入方式: Python2.x: from Tkinter import * Python3.x: from tkinter import * 二.打开文件框: Python2.X: import tkFileDialog filename =

Android开发 打开文件 选择文件对话框

原文地址:http://blog.csdn.net/trbbadboy/article/details/7899424; 因项目需要打开文件,因此做了一个打开文件的对话框,现在把这部分的代码共享出来了. 首先是一个回调接口,该接口在文件选择完毕的通知调用者进行如果何种操作.文件接口声明,如下: [java] view plaincopyprint? // filename: CallbackBundle.java package com.example.openfiledemo; import 

第16周周四:GUI编程及文件对话框的使用

项目一:<span style="color: rgb(68, 68, 68); font-family: 'Microsoft YaHei UI'; font-size: 14px; line-height: 22px;">了解文件对话框的使用方法,熟悉GUI中事件驱动的核心步骤.</span> package com.liang; import java.awt.FlowLayout; import java.awt.event.ActionEvent; i

【整理】Java 8新特性总结

闲语: 相比于今年三月份才发布的Java 10 ,发布已久的Java 8 已经算是老版本了(传闻Java 11将于9月25日发布....).然而很多报道表明:Java 9 和JJava10不是 LTS 版本,和过去的 Java 大版本升级不同,它们只有半年左右的开发和维护期.而未来的 Java11,也就是 18.9 LTS,才是 Java 8 之后第一个 LTS 版本(得到 Oracle 等商业公司的长期支持服务).所以Java 8 就成了最新的一次LTS版本升级,这也是为什么Java开发者对J