当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级Java对话框学习教程(3)
发布时间:2011/12/29 17:01:33 来源:城市学习网 编辑:ziteng

  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