`
天涯海角tour
  • 浏览: 175149 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

JFileChooser使用详解

    博客分类:
  • java
阅读更多

JFileChooser 转载

(2010-11-30 23:20:02)

转载

<script></script>标签:

it

 

  JFileChooser用来提供一个文件对话框,可以通过其showXxxDialog打开一个模态对话框,或直接实例化并加入到其他组件。

   1、直接通过API打开对话框

   //Create a file chooser
   final JFileChooser fc = new JFileChooser();
   . ..
   //
打开文件对话框
   int returnVal = fc.showOpenDialog(aComponent);

   //获取选择的文件

   File file = fc.getSelectedFile();

   //打开保存对话框

   int returnVal = fc.showSaveDialog(FileChooserDemo.this);

   注意:在程序中,使用同一个JFileChooser对象创建打开和保存对话框有以下好处:

  1chooser会记住当前文件夹。

  2)只需设置chooser一次,然后多次使用。

   可以修改对话框文件选择的模式,比如只允许选择文件  夹:fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);除此以外,还有其他两个选项FILES_AND_DIRECTORIES FILES_ONLY

 

   2、定制FileChooser(包括文件过滤器、文件图标、文件预览图)

   2.1 为特别任务创建FileChooser

   除打开,保存文件框以外,可能还需要其他一些特殊的文件框,使用:

   JFileChooser fc = new JFileChooser();
   int returnVal = fc.showDialog(FileChooserDemo2.this, "Attach");

   2.2 文件过滤器

   默认情况下,Chooser显示所有检测到得文件(隐藏文件除外),JFileChooser支持以下三类Filter,检查顺序依次:

   1Built-in filtering:直接调用Chooser上方法设置此类过滤器,比如是否显示隐藏文件,setFileHidingEnabled(false)

   2Application-controlled filtering:首先自定义一个FileFilter的子类,通过调用setFileFilter方法设置该过滤器,此时对话框只显示该过滤器允许的文件,该过滤器将会出现在对话框的过滤器列表上。

   3User-choosable filtering:添加一些可选的过滤器,fc.addChoosableFileFilter(new ImageFilter())

默认情况下,可选过滤器包括显示全部文件过滤器,如想去掉该过滤项,使用fc.setAcceptAllFileFilterUsed(false)

   2.3 自定文件视图(File view

   为了改变默认的文件视图,可以先自定义一个FileView子类,然后调用setFileView方法。

   2.4 自定附件组件(文件预览图)

   fc.setAccessory(new ImagePreview(fc));

 

 

 

 

 

 

1、基本用法

JFileChooser dlg = new JFileChooser();
dlg.setDialogTitle("Open JPEG file");
int result = dlg.showOpenDialog(this);  //
打开"打开文件"对话框
// int result = dlg.showSaveDialog(this);  //
"开保存文件"对话框
if (result == JFileChooser.APPROVE_OPTION) {
File file = dlg.getSelectedFile();
...
}

2、自定义FileFilter

JDK没有提供默认的文件过滤器,但提供了过滤器的抽象超类,我们可以继承它。

import javax.swing.filechooser.FileFilter;

public final class PictureFileFilter extends FileFilter {

private String extension;

private String description;

public PictureFileFilter(String extension, String description) {
super();
this.extension = extension;
this.description = description;
}

public boolean accept(File f) {
if (f != null) {
if (f.isDirectory()) {
return true;
}
String extension = getExtension(f);
if (extension != null && extension.equalsIgnoreCase(this.extension)) {
return true;
}
}
return false;
}

public String getDescription() {
return description;
}

private String getExtension(File f) {
if (f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.');
if (i > 0 && i < filename.length() - 1) {
return filename.substring(i + 1).toLowerCase();
}
}
return null;
}

}

其实主要就是accept(File f)函数。上例中只有一个过滤器,多个过滤器可参考JDK目录中“demo\jfc\FileChooserDemo\src”中的“ExampleFileFilter.java”


3
、多选

在基本用法中,设置

c.setMultiSelectionEnabled(true);

即可实现文件的多选。

读取选择的文件时需使用

File[] files = c.getSelectedFiles();

4、选择目录

利用这个打开对话框,不仅可以选择文件,还可以选择目录。

其实,对话框有一个FileSelectionMode属性,其默认值为“JFileChooser.FILES_ONLY”,只需要将其修改为“JFileChooser.DIRECTORIES_ONLY”即可。

JFileChooser c = new JFileChooser();
c.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
c.setDialogTitle("Select path to save");
int result = c.showOpenDialog(PrintDatetime.this);
if (result == JFileChooser.APPROVE_OPTION) {
String path = c.getSelectedFile().getAbsolutePath());
...
}

 

 

分享到:
评论

相关推荐

    Java文件选择对话框JFileChooser使用详解

    Java中的`JFileChooser`是Swing库提供的一种用于在用户界面中实现文件选择功能的组件。它允许用户从本地文件系统中打开、保存或者...通过熟练掌握`JFileChooser`的使用,开发者能够构建更加用户友好的Java应用程序。

    JFileChooser使用详解.pdf

    本文将对JFileChooser的使用进行详解。 首先,创建一个JFileChooser对象是使用JFileChooser的第一步。JFileChooser可以用来选择文件或目录,这取决于如何配置。创建一个文件选择器的代码如下: ```java final ...

    Java的JFileChooser类的使用详解

    Java的JFileChooser类的使用详解 JFileChooser是一个Java类,提供了一个文件对话框,用于选择文件或文件夹。它可以通过API打开一个模态对话框,或直接实例化并加入到其他组件。 直接使用JFileChooser打开对话框 ...

    java文件选择器

    博客文章《JFileChooser使用详解.doc》可能进一步深入解释了这些概念,并可能包含一些实用示例代码和注意事项,如处理不同操作系统下的差异,以及如何优雅地处理用户未选择文件的情况。由于无法直接查看文档内容,...

    JFileChoose的使用

    JFileChoose的使用详解,JFileChooser 用来提供一个文件对话框,可以通过其 showXxxDialog 打开一 个模态对话框,或直接实例化并加入到其他组件。

    Java Swing图形界面开发与案例详解

    5. 对话框和文件选择:涵盖JOptionPane和JFileChooser的使用。 6. 菜单和工具栏:创建和管理菜单栏和工具栏的方法。 7. 表格组件:JTable的使用,包括数据模型和列操作。 8. 树形视图:JTree组件的创建和数据模型的...

    JavaSwing图形界面开发与案例详解和实例代码

    本资料包"JavaSwing图形界面开发与案例详解"包含了对Swing的深入讲解以及相关的实例代码,旨在帮助开发者掌握Swing的基本用法和高级特性。 Swing的核心组件包括JFrame(窗口)、JPanel(面板)、JButton(按钮)、...

    《Java Swing图形界面开发与案例详解》源代码

    本资源——"《Java Swing图形界面开发与案例详解》源代码",显然是一个详细教程的配套源码,旨在帮助学习者深入理解和实践Swing的相关知识。 Swing组件库包含了窗口、按钮、文本框、滚动面板、菜单、表格、树形视图...

    Java软件开发实战 Java基础与案例开发详解 14-4 swing简介 共21页.pdf

    ### Java软件开发实战:Java基础与案例开发详解 #### 14-4 Swing简介 Swing作为Java图形用户界面(GUI)的一个重要组成部分,被广泛应用于桌面应用程序的开发。相较于AWT(Abstract Window Toolkit),Swing提供了...

    SwingQQ详解(不才之作,敬请欣赏)

    文字消息可能通过`JTextArea`或`JTextPane`展示,而图片发送可能涉及文件选择对话框(`JFileChooser`),以及使用`ImageIcon`来显示图片。聊天记录可能被保存在一个模型类中,以便在需要时加载和显示。 5. **头像...

    Java swing图形界面开发与案例详解_代码

    2. 文件浏览器:使用JFileChooser展示文件和目录,选择文件或目录后在JTextArea中显示路径。 3. 聊天窗口:创建包含输入框、发送按钮和消息显示区的聊天应用,使用EventQueue.invokeLater()实现异步更新UI。 4. 日历...

    实例17FileChooser(绝对java实例)

    在Java程序中使用`FileChooser`,首先需要导入`javax.swing.JFileChooser`和`javax.swing.JFrame`库。例如: ```java import javax.swing.JFileChooser; import javax.swing.JFrame; ``` 2. **创建FileChooser...

    Java GUI编程进阶

    ### Java GUI编程进阶知识点详解 #### JColorChooser和JFileChooser深入解析 ##### JColorChooser:色彩选择器 在Java GUI编程中,`JColorChooser`是一个强大的组件,用于允许用户选择颜色。它提供了一个直观的...

    Java文件(io)编程之记事本开发详解

    4. 文件打开和保存的实现:使用JFileChooser组件实现文件打开和保存的操作,并使用FileReader和BufferedReader读取文件中的信息。 知识点 1. Java文件(io)编程的基本概念:包括文件的读取和写入、文件流的使用等。 ...

    Oracle解析Excel

    1. **导入JFileChooser**: 使用JFileChooser可以让用户选择需要读取的Excel文件。这一步是用户交互的重要环节,确保用户能够指定正确的文件路径。 ```java JFileChooser fileChooser = new JFileChooser(); int ...

    java文件选择器代码

    ### Java文件选择器代码知识点详解 #### 一、概述 本文档主要介绍了一段Java代码,该代码实现了一个简易的文件选择器功能。文件选择器是用户界面中的一个常用组件,用于让用户选择文件或目录。在Java中,`...

    04747 Java语言程序设计(一) 2013年1月

    - 要实现文件的打开和保存对话框,需要使用`javax.swing.JFileChooser`类。 - `import javax.swing.*;` 包含了`JFileChooser`类。 - **知识点详解**: - `java.io.*`:主要用于文件输入输出操作。 - `java.util...

    Java远程传输文件(增加覆盖取消等功能).docx

    首先,我们需要创建一个发送端的GUI界面,使用JFileChooser来选择要传输的文件,并使用JButton来触发文件传输事件。 其次,我们需要创建一个线程来处理文件传输的逻辑。在这个线程中,我们将使用Socket来建立连接...

Global site tag (gtag.js) - Google Analytics