一、JFileChooser的用法


1.构造方法/选择文件时的目录:

(1)默认构造方法:

JFileChooser fileChooser=new JFileChooser();
int state=fileChooser.showOpenDialog(null);//显示文件选择框

显示:

(2)带参构造方法:JFileChooser fileChooser=new JFileChooser(currentDirectory);//默认为用户文件夹

等价于:

JFileChooser fileChooser=new JFileChooser();

fileChooser.setCurrentDirectory(File file);//当前文件的目录

以第二种方法来说明,举两个例子

a.

JFileChooser fileChooser=new JFileChooser();
fileChooser.setCurrentDirectory(new File("."));//当前文件的目录

显示:

b.

JFileChooser fileChooser=new JFileChooser();
fileChooser.setCurrentDirectory(new File("/Users/zhangkanqi/Desktop/"));

显示:

2.设置文件打开方式:

setFileSelectionMode(int mode),mode有如下三种类型:

(1)JFileChooser.FILES_ONLY: 只能选文件;

(2) JFileChooser.DIRECTORIES_ONLY: 只能选文件夹;

(3)JFileChooser.FILES_AND_DIRECTORIES: 文件和文件夹都可以选。

JFileChooser fileChooser=new JFileChooser();fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

3.是否可以多选:

JFileChooser fileChooser=new JFileChooser();fileChooser.setMultiSelectionEnabled(true);//默认false

4.设置文件过滤器(可选择的文件类型):不添加设置默认所有文件

可用setFileFilter(FileFilter filter)设置默认的可选择的文件类型,然后再用addChoosableFileFilter(FileFilter filter)追加

JFileChooser fileChooser=new JFileChooser();
fileChooser.setFileFilter(new FileNameExtensionFilter("zip(*.txt, *.rar)", "txt", "rar"));//文件过滤器
fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("image(*.jpg,*.png,.gif)","jpg","png","gif"));
int state=fileChooser.showOpenDialog(null);

显示:

5.设定所选择的文件/文件夹

JFileChooser fileChooser=new JFileChooser();
fileChooser.setSelectedFile(new File("/Users/zhangkanqi/Desktop/11.txt"));
//若设置文件夹,用void setSelectedFiles(File[] selectedFiles)

6.获取选择的文件/文件夹

JFileChooser fileChooser=new JFileChooser();
File file=fileChooser.getSelectedFile();
//获取文件夹用getSelectedFiles(),返回File[]

7.显示选择/保存文件窗口

JFileChooser fileChooser=new JFileChooser();
int state=fileChooser.showOpenDialog(null);
//int state=fileChooser.showSaveDialog(null);

8.用法7中state的返回值:

三种:

(1)JFileChooser.CANCEL_OPTION: 点击了取消或关闭 ;

(2) JFileChooser.APPROVE_OPTION: 点击了确认或保存 ;

(3)JFileChooser.ERROR_OPTION: 出现错误。

JFileChooser fileChooser=new JFileChooser();
int state=fileChooser.showOpenDialog(null);
if(state==fileChooser.APPROVE_OPTION)
{}

9.设置显示框的标题:

JFileChooser fileChooser=new JFileChooser();
fileChooser.setDialogTitle("Please choose a path");

二、利用JFileChooser选择特定的文件并打印


不过我在测试的时候遇到了个问题,我使用的打印机用下面的代码可以打印txt和pdf,但是不可以打印doc,即使doc的内容只有一行,目前还不知道是什么原因,可以是打印机比较老旧的原因吧。

package Casual;import java.io.*;
import javax.print.*;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.print.attribute.*;
public class PrintDemo
{public static void main(String[]  args){JFileChooser fileChooser=new JFileChooser();int state=fileChooser.showOpenDialog(null);//fileChooser.setCurrentDirectory(new File("/Users/zhangkanqi/Desktop/"));//fileChooser.setCurrentDirectory(new File("."));//当前文件的目录//fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//设置选择模式(只选文件、只选文件夹、文件和文件均可选)//fileChooser.setMultiSelectionEnabled(true);//是否允许多选//fileChooser.setFileFilter(new FileNameExtensionFilter("zip(*.txt, *.rar)", "txt", "rar"));//文件过滤器//fileChooser.addChoosableFileFilter(new FileNameExtensionFilter("image(*.jpg,*.png,.gif)","jpg","png","gif"));//fileChooser.setDialogTitle("Please choose a path");//int state=fileChooser.showSaveDialog(null);if(state==fileChooser.APPROVE_OPTION){//fileChooser.setSelectedFile(new File("/Users/zhangkanqi/Desktop/11.txt"));词句和下面那句连着用会报错File file=fileChooser.getSelectedFile();HashPrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();//建立打印请求属性集DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; //设置打印格式,因未确定,选择autosense   PrintService printService[] = PrintServiceLookup.lookupPrintServices(flavor, pras); //查找所有的可用的打印服务   PrintService defaultService = PrintServiceLookup.lookupDefaultPrintService();   //定位默认的打印服务   PrintService service = ServiceUI.printDialog(null, 200, 200, printService,    defaultService, flavor, pras);  //显示打印对话框   if(service!=null){try {DocPrintJob job = service.createPrintJob(); //创建打印作业   FileInputStream fis = new FileInputStream(file); //构造待打印的文件流   DocAttributeSet das = new HashDocAttributeSet();   Doc doc = new SimpleDoc(fis, flavor, das);   job.print(doc, pras);  }catch(Exception e){e.printStackTrace();}}}}
}

【Java】JFileChooser的用法及借助JFileChooser选择文件并操纵打印机打印出来相关推荐

  1. java文件选择器_java中文件选择器JFileChooser的用法

    一般的说,大家用JFileChooser有两种用法:打开文件或文件夹.保存文件或文件夹.本文就打开和保存文件来介绍JFileChooser的用法. 头文件的声明: import javax.swing ...

  2. java中文件选择器JFileChooser的用法

    一般的说,大家用JFileChooser有两种用法:打开文件或文件夹.保存文件或文件夹.本文就打开和保存文件来介绍JFileChooser的用法. 头文件的声明: import javax.swing ...

  3. java -ArrayList的用法实例--学生宿舍管理系统

    java -ArrayList的用法实例--学生宿舍管理系统 对于利用ArrayLis来实现增,删,改,查希望对大家有用! import java.util.*; import java.io.*; ...

  4. java中实现选择文件_Java 实现文件选择对话框及功能

    时间:2018-10-02 概述:文件选择器 Java实现文件选择器,就是大家熟悉的打开文件.选择文件的对话框,本例子分为两部分来进行,一个部分是选择器对话框构建部分,另一部分是文件过滤部分,用于过滤 ...

  5. java gul,java gui 选择文件

    java gui 选择文件 import java.io.File; import java.io.IOException; import java.util.Scanner; import java ...

  6. python跟java 效率_Python与Java:哪个更好,如何选择?

    Python与Java新手应该选哪个?应该是当今讨论最为热门的话题了. 在过去的几年中,Python的普及速度令人惊叹,Java的王者地位也常年不衰.目前两者的竞争愈发激烈,怎么选择成为了许多初学者萦 ...

  7. java.nio.ByteBuffer用法小结

    转载自  java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...

  8. java中extends用法_JAVA的extends用法

    理解继承是理解面向对象程序设计的关键.在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类).在Java中不允许多继承. (1)继承 cla ...

  9. java中switch用法举例范围_Java中Switch用法代码示例

    一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样), 在java1.7后 ...

  10. java中Iterator用法总结

    Java中Iterator用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级& ...

最新文章

  1. 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
  2. 某40岁程序员找工作,因技术老旧被拒绝,竟泪洒当场!
  3. 【LeetCode】无重复字符的最长子串【滑动窗口法】
  4. java B2B2C Springcloud多租户电子商城系统-Spring Cloud Sleuth
  5. Linux平台上SQLite数据库教程(一)——终端使用篇
  6. Flume与Kafka整合案例详解
  7. slim 搭建rnn_使用Keras搭建cnn+rnn, BRNN,DRNN等模型
  8. 本周题解(9.12)
  9. 一周畅销书速报 | 端午节特别版
  10. 为移动硬盘(硬盘盒)安装linux(傻瓜式,简单,高效)
  11. 如鹏网.Net三层架构第二章登录和会员管理
  12. .NET 将PDF转成图片之Magick.NET(亲测可用)
  13. 1.3.1 互联网的边缘部分(资源子网)
  14. caniuse_使用此工具将CanIUse表嵌入到您的网站中
  15. 今天看continous delivery看到extreme programming
  16. 【云原生】这么火,你不来了解下?
  17. 京东方和TCL为争夺全球液晶面板老大位置,展开并购竞赛
  18. ios 文本翻转_UIButton,UILabel文字旋转(倾斜)
  19. CRM及协同办公高保真原型、审批管理、办公申请、工单管理、任务管理、日程管理、工作报告、签到考勤、客户管理、销售线索、商机管理、订单管理、账务管理、统计报表、回款管理、发票管理、报销管理、客户关系管理
  20. 开源 java CMS - FreeCMS2.6 自定义表单

热门文章

  1. ERP实施过程中的沟通管理研究
  2. 大型企业网络配置系列课程详解(七) --NAT的配置与相关概念的理解
  3. QT编译静态库与动态库
  4. QT4升级QT5调研报告
  5. python深复制_Python深浅拷贝
  6. python中能用π吗_python里π
  7. 目录遍历漏洞_雷神众测漏洞周报 2020.10.052020.10.114
  8. csv在python中的意思,在python中解析csv
  9. 搜索引擎html和css,CSS样式对搜索引擎排名的影响
  10. eclipse git拉取失败_收藏!工作中Git使用实践和常用命令流程合集