swing编写的文件选择器,并且过滤可选文件的类型

本文介绍如何使用Java Swing创建文件选择器对话框,包括如何设置文件筛选器、选择模式及多选等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用swing编写的文件选择器,查看文件。最主要熟练使用几个函数的使用。
1。JFileChooser创建文件选择对话框。用法:
  • JFileChooser() 
              构造一个指向用户默认目录的  JFileChooser
  • JFileChooser(File currentDirectory)
              使用给定的 File 作为路径来构造一个 JFileChooser
2。 用showOpenDialog来创建弹出一个"Open File"文件选择器对话框,并且参数可以为空或当前对象,在指定为当前对象时要记得加.this。
3。setFileSelectionMode用来设置打开的是文件还是文件夹。参数为FILES_AND_DIRECTORIES(打开为文件和文件夹),FILES_ONLY(只能打开文件)等等。
4。setMultiSelectionEnabled设置文件是否可以多选,参数为true 或 false。
5。当要过滤可选的文件类型时,用FileNameExtensionFilter函数。
6。 getSelectedFile ()返回选中的文件

 package File;
import java.awt.BorderLayout;
import java.awt.EventQueue;
importjavax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.JButton;
import java.awt.FlowLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
public class TextOpen extends JFrame{
 private JPanelcontentPane;
 private JFileChooser chooser;
 
 public static void main(String[] args) {
  EventQueue.invokeLater(newRunnable() {
   public voidrun() {
    try{
     TextOpenframe = new TextOpen();
     frame.setVisible(true);
    }catch (Exception e) {
     e.printStackTrace();
    }
   }
  });
 }
 
 public TextOpen() {
  chooser = newJFileChooser();
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setBounds(100, 100, 450,300);
  contentPane = newJPanel();
  contentPane.setBorder(newEmptyBorder(5, 5, 5, 5));
  setContentPane(contentPane);
  contentPane.setLayout(newFlowLayout(FlowLayout.CENTER, 5, 5));
  
  JButton btnOpenDir = newJButton("open dir");
  btnOpenDir.addMouseListener(newMouseAdapter() {
   @Override
   public voidmouseClicked(MouseEvent e) {
    chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//创建文件选择器,可以打开文件和文件夹
    chooser.setMultiSelectionEnabled(true);//可以使得文件多选
    intvalue =chooser.showOpenDialog(TextOpen.this);//打开文件的对话框,设置为当前的窗体
    if(value== JFileChooser.APPROVE_OPTION)//APPROVE_OPTION表示文件正常打开了
    {
     Filefile[] =chooser.getSelectedFiles();//获得选中的文件,返回数组
     for(int i = 0; i < file.length; i++) {
      System.out.println(file[i].getAbsolutePath());//输出绝对路径
     }
    }
   }
  });
  contentPane.add(btnOpenDir);
  
  JButton btnOpenFile = newJButton("open file");
  btnOpenFile.addMouseListener(newMouseAdapter() {
   @Override
   public voidmouseClicked(MouseEvent e) {
    FileNameExtensionFilterfilter = new FileNameExtensionFilter("Allowed File","txt","jar","doc");//过滤可以选择的文件
    chooser.setFileFilter(filter);
    
    intvalue = chooser.showOpenDialog(TextOpen.this);//打开文件的对话框
    if(value== JFileChooser.APPROVE_OPTION)
    {
     Filefile = chooser.getSelectedFile();//获得选中的文件,输出
     System.out.println(file.getAbsolutePath());//输出绝对路径
    }
   }
  });
  contentPane.add(btnOpenFile);
 }
}
 

  swing编写的文件选择器,并且过滤可选文件的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值