JFileChooser(文件选择器)的使用

以下是一个初学者的角度对JFileChooser控件的使用心得。

JFileChooser(以下简称JFC)是个非常常用的控件,我们可以把它理解成一个独立的JFrame,换句话说,并不用单独生成一个JFrame用来承载JFC

JFC一般有两种使用方式,一种是打开文件方式,一种是存储路径方式

下面是一段JFC的代码,你可以参考注释来理解一个打开文件方式的JFC是如何生成并显示出来的
        
jfc = new JFileChooser();

        jfc.setFileFilter( new javax.swing.filechooser.FileFilter() {
            public boolean accept(File f) {
                if ( f.getName().endsWith(".xls") || f.isDirectory() ) {
                    return true;
                }
                return false;
            }
            public String getDescription() {
                return "xls文件";
            }
        });//红色部分是提供给文件选择器过滤的文件类型,绿色部分就是该选择器能接受的文件类型,或
//者文件夹
         if (jfc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {//showOpenDialog(null)方法是
//将jfc实例呈现出来,并监视用户在jfc上的动作,该方法将返回用户的动作代码,包括APPROVE、//
CANCEL、ERROR三种,蓝色代码的意思是当返回APPROVE时,将执行如下操作
//如何返回其他值呢,这个你就不用管了,控件会按你想象的方式自动处理的
            String filepath = jfc.getSelectedFile().getPath();
            
        }
 
下面是一个实例:
 
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
class test extends JFrame{
 JButton jb=new JButton("打开txt文件");
 JTextArea jt=new JTextArea();
 test(){
  setSize(400,300);
  setVisible(true);
  setLayout(new BorderLayout());
  add(jb,BorderLayout.SOUTH);
  add(jt,BorderLayout.NORTH);
  jb.addActionListener(new ActionListener(){
   public void actionPerformed(ActionEvent e){
    JFileChooser chooser = new JFileChooser();
       FileNameExtensionFilter filter = new FileNameExtensionFilter("文本文件(*.txt)", "txt");
        chooser.setFileFilter(filter);
      int returnVal = chooser.showOpenDialog(null);
        if(returnVal == JFileChooser.APPROVE_OPTION) {
            try{ FileInputStream fd=new FileInputStream(chooser.getSelectedFile());
               byte[] b=new byte[4096];
                fd.read(b); 
                  jt.setText(new String(b));
                 fd.close();
         }catch( IOException ex){}
     }
      }
    });
 
 }
 public static void main(String args[]){
  new test();
 }
}
 
 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值