当前位置: 源码素材网 » Java教程 » 详情页

javax.swing 创建可选择文件类型的对话框

  •   时间:2018-10-10
  • 概述:FileFilter 对话框

本代码主要是演示如何创建一个具有可选择文件类型的对话框,这种对话框在Windows中到处都是,但是在Java代码中,实现方法是有区别的,本示例向你演示如何创建此类型的对话框,编写过程中因为要使用到File与FileFilter对象,因此需要引入import File与FileFilter这两个类:

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.File;
import javax.swing.filechooser.FileFilter;
public class test2 implements ActionListener
{
  JFrame f=null;
  JLabel label=null;
  JFileChooser fileChooser=null;
  public test2()
{
     f=new JFrame("FileFilterDemo");	
     Container contentPane=f.getContentPane();
     
     JButton b=new JButton("打开文件");
     b.addActionListener(this);
     
     label=new JLabel(" ",JLabel.CENTER);
     label.setPreferredSize(new Dimension(150,30));
     contentPane.add(label,BorderLayout.CENTER);
     contentPane.add(b,BorderLayout.SOUTH);
     f.pack();
     f.setVisible(true);
     f.addWindowListener(new WindowAdapter(){
     	public void windowClosing(WindowEvent e){
     	  System.exit(0);	
     	}     	
     });
  }	
  public static void main(String[] args)
{
  	  new test2();
  }
  //处理用户按下"打开旧文件"按钮事件.
  public void actionPerformed(ActionEvent e)
{
  	 fileChooser=new JFileChooser("C:\\winnt");//以c:\\winnt为打开文件为对话框的默认路径
      //利用addChoosableFileFilter()方法加入欲过滤的文件类型,使用addChoosableFileFilter()可以加入多种文件类型, 
      //若你只需要过滤出一种文件类型,可使用setFileFilter()方法.
  	 fileChooser.addChoosableFileFilter(new JAVAFileFilter("class"));
  	 fileChooser.addChoosableFileFilter(new JAVAFileFilter("java"));
  	 int result=fileChooser.showOpenDialog(f);
///如果选择确定按钮的话,那么则可以打开现有的文件
  	 if (result==JFileChooser.APPROVE_OPTION)
{
  	   File file=fileChooser.getSelectedFile();
  	   label.setText("你选择了:"+file.getName()+"文件");	  	   
  	 }
///否则如果单击取消的话,那么就会在标签中显示"你没有选取文件"
else if (result==fileChooser.CANCEL_OPTION){
  	 	label.setText("你没有选取文件");
  	 }
  }
}
//以JAVAFileFilter类继承FileFilter抽象类,并实现accept()与getDescription()方法.
class JAVAFileFilter extends FileFilter
{
    String ext;
    public JAVAFileFilter(String ext){
        this.ext=ext;	
    }	
   /*在accept()方法中,当程序所抓到的是一个目录而不是文件时,我们返回true值,表示将此目录显示出来.*/
    public boolean accept(File file)
{
      if (file.isDirectory())
{
         return true;	
      }	
      String fileName=file.getName();
      int index=fileName.lastIndexOf('.');
      if (index>0 && index<fileName.length()-1)
{
      	  //表示文件名称不为".xxx"现"xxx."之类型
      	  String extension=fileName.substring(index+1).toLowerCase();
          //若所抓到的文件扩展名等于我们所设置要显示的扩展名(即变量ext值),则返回true,表示将此文件显示出来,否则返回true.
      	  if (extension.equals(ext))
      	    return true;
      }
      return false;
    }
    //实现getDescription()方法,返回描述文件的说明字符串!!!
    public String getDescription()
{
    	if (ext.equals("java"))
    	    return "JAVA Source File(*.java)";
    	if (ext.equals("class"))
    	    return "JAVA Class File(*.class)";
    	return "";
    }
}

    相关内容:

    相关声明:

      若“javax.swing 创建可选择文件类型的对话框”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。