博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Swing学习:文件选择框
阅读量:5259 次
发布时间:2019-06-14

本文共 1702 字,大约阅读时间需要 5 分钟。

ava为选择框提供了JFileChooser类API。通过使用该类,可以很方便的现实选择对话框。见下例:

//建立选择框对象 JFileChooser fc=new JFileChooser(); //设定选择框标题 fc.setDialogTitle("Open class File"); //显示选择框,在选择后将结果储存到returnVal变量中 int returnVal = fc.showOpenDialog(app.getFrameInstance()); //如果用户选择了,并点击了"Opne/打开"按钮,显示用户选择的全名路径, //如果用户点击"Close/关闭"按钮,以及其它方式退出选择框,则什么也不做。   if (returnVal == JFileChooser.APPROVE_OPTION){    File file = fc.getSelectedFile();    System.out.println(file.getPath());   }

注意在选择对话框中,可以进行选择目录的操作,只需要用FileChooser对象的setFileSelectionMode()方法指定其选择模式为目录选择。见下面代码

//上例中可以在对话框显示语句前加上下面代码,使对话框成为目录选择对话框 fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

在选择过程中,我们可以为选择对话框设置过滤器,有了过滤器的对话框,会用下拉列表的方式将过滤的名特征显示在"类型"组合框中,并将不符合条件的名和目录名过滤掉(不显示)。

为一个选择对话框设置过滤器需要定义过滤器类,见下例:

public class ClassFileFilter extends FileFilter{  public boolean accept(File f) {   String filename = f.getName();         return filename.endsWith(".class");  }  public String getDescription() {   return "*.class";  } }

该类定义了一个过滤Java类"*.class"的过滤器。 将它增加到选择对话框中,可以过滤出以.class为尾缀的。见下面代码:

fc.addChoosableFileFilter(new ClassFileFilter());

针对一个对话框,我们可以为其加装多个过滤器。这里有对过滤器更加诠释的代码: public class ImageFilter extends FileFilter {     //Accept all directories and all gif, jpg, tiff, or png files.     public boolean accept(File f) {         if (f.isDirectory()) {             return true;         }         String extension = Utils.getExtension(f);         if (extension != null) {             if (extension.equals(Utils.tiff) ||                 extension.equals(Utils.tif) ||                 extension.equals(Utils.gif) ||                 extension.equals(Utils.jpeg) ||                 extension.equals(Utils.jpg) ||                 extension.equals(Utils.png)) {                     return true;             } else {                 return false;             }         }         return false;     }     public String getDescription() {         return "Just Images";     } } 该过滤器为图像过滤器。

转载于:https://www.cnblogs.com/jianming-chan/p/3265505.html

你可能感兴趣的文章
移动、尺寸改变
查看>>
poj2255Tree Recovery【二叉树重构】
查看>>
tcpcopy 流量复制工具
查看>>
vue和react的区别
查看>>
第十一次作业
查看>>
负载均衡策略
查看>>
微信智能开放平台
查看>>
ArcGIS Engine 中的绘制与编辑
查看>>
Oracle--通配符、Escape转义字符、模糊查询语句
查看>>
子网划分讲解及练习(一)
查看>>
c# 文件笔记
查看>>
第一页 - 工具的使用(webstorm)
查看>>
Linux 进程资源用量监控和按用户设置进程限制
查看>>
IE浏览器整页截屏程序(二)
查看>>
D3.js 之 d3-shap 简介(转)
查看>>
制作满天星空
查看>>
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>