8.6.2 JFileChooser 文件对话框
JFileChooser表示文件对话框,常用来弹出“打开”、“保存”后其他自定标题的文件对话框,并可爱对话框中进行文件选择。
JFileChooser类提供了6个构造方法用于创建JFileChooser类对象,常用的有3个,详见下表。
表8-16 JFileChooser常用构造方法
|
构造方法 |
说明 |
|
JFileChooser() |
构造一个指向用户默认目录的 JFileChooser。 |
|
JFileChooser(String currentDirectoryPath) |
构造一个使用给定路径的 JFileChooser。 |
|
JFileChooser(File currentDirectory) |
使用给定的 File 作为路径来构造一个 JFileChooser |
此默认目录取决于操作系统。在 Windows 上通常是“我的文档”,在 Unix 上是用户的主目录。
无参构造方法创建的JFileChooser类对象,其默认目录默认目录取决于操作系统。在 Windows 上通常是“我的文档”,在 Unix 上是用户的主目录。
另外两个构造方法,虽然传递参数的类型不同,但均指某个目录。若参数传递时传入“null”,则相当于使用“JFileChooser()”创建JFileChooser类对象。
JFileChooser类中常用方法如下表。
表8-17 JFileChooser常用方法
|
成员方法 |
说明 |
|
int showOpenDialog(Component parent) |
弹出一个 "Open File" 文件选择器对话框 |
int showSaveDialog(Component parent) |
弹出一个 "Save File" 文件选择器对话框 |
showDialog(Component parent, String approveButtonText) |
弹出具有自定义 approve 按钮的自定义文件选择器对话框 |
|
File getSelectedFile() |
返回选中的文件 |
对于showOpenDialog等显示对话框的方法将返回一个整数,可能取值情况是:
JFileChooser.CANCEL_OPTION —按取消键退出对话框,无文件选取
JFileChooser.APPROVE_OPTION —正常选取文件
JFileChooser.ERROR_OPTION —发生错误或者该对话框已被解除而退出对话框
所以在文件选取对话框交互结束后,应进行判断,是否从对话框中选取了文件,然后根据返回值情况进行处理。
例8-12演示了JFileChooser类的showOpenDialog方法的使用,JFileChooser一般用于可视化的文件读取及保存,本例只是将读取的文件名显示出来,对于进一步的文件读取及保存工作读者可在学习了I/O流后完善本实例。
[例8-12]
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class JFileChooserTest extends JFrame{
private JLabel label = new JLabel("所选文件路径:");
private JTextField tfFileName = new JTextField(25);
private JButton btnOpen = new JButton("浏览");
public JFileChooserTest(String title){
super(title);
Container contentPane = this.getContentPane();
contentPane.setLayout(new FlowLayout(5));
contentPane.add(label);
contentPane.add(tfFileName);
contentPane.add(btnOpen);
pack();
setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//监听btnOpen按钮
btnOpen.addActionListener(new MyActionListener());
}
//Action事件处理
private class MyActionListener implements ActionListener{
public void actionPerformed(ActionEvent arg0) {
JFileChooser fc = new JFileChooser("D:\\javaPro");
int val = fc.showOpenDialog(null);//文件打开对话框
if(val==fc.APPROVE_OPTION){//正常选择文件
tfFileName.setText(fc.getSelectedFile().toString());
}
else{//未正常选择文件,如选择取消按钮
tfFileName.setText("未选取文件");
}
}
}
}
public class Test8_12 {
public static void main(String[] args) {
new JFileChooserTest("JFileChooser测试");
}
}
程序运行结果。

| 广告合作:400-664-0084 全国热线:400-664-0084 Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号 珠峰网 版权所有 All Rights Reserved
|