【Java】JFileChooser的用法及借助JFileChooser选择文件并操纵打印机打印出来
一、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选择文件并操纵打印机打印出来相关推荐
- java文件选择器_java中文件选择器JFileChooser的用法
一般的说,大家用JFileChooser有两种用法:打开文件或文件夹.保存文件或文件夹.本文就打开和保存文件来介绍JFileChooser的用法. 头文件的声明: import javax.swing ...
- java中文件选择器JFileChooser的用法
一般的说,大家用JFileChooser有两种用法:打开文件或文件夹.保存文件或文件夹.本文就打开和保存文件来介绍JFileChooser的用法. 头文件的声明: import javax.swing ...
- java -ArrayList的用法实例--学生宿舍管理系统
java -ArrayList的用法实例--学生宿舍管理系统 对于利用ArrayLis来实现增,删,改,查希望对大家有用! import java.util.*; import java.io.*; ...
- java中实现选择文件_Java 实现文件选择对话框及功能
时间:2018-10-02 概述:文件选择器 Java实现文件选择器,就是大家熟悉的打开文件.选择文件的对话框,本例子分为两部分来进行,一个部分是选择器对话框构建部分,另一部分是文件过滤部分,用于过滤 ...
- java gul,java gui 选择文件
java gui 选择文件 import java.io.File; import java.io.IOException; import java.util.Scanner; import java ...
- python跟java 效率_Python与Java:哪个更好,如何选择?
Python与Java新手应该选哪个?应该是当今讨论最为热门的话题了. 在过去的几年中,Python的普及速度令人惊叹,Java的王者地位也常年不衰.目前两者的竞争愈发激烈,怎么选择成为了许多初学者萦 ...
- java.nio.ByteBuffer用法小结
转载自 java.nio.ByteBuffer用法小结 在NIO中,数据的读写操作始终是与缓冲区相关联的.读取时信道(SocketChannel)将数据读入缓冲区,写入时首先要将发送的数据按顺序填入 ...
- java中extends用法_JAVA的extends用法
理解继承是理解面向对象程序设计的关键.在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类).在Java中不允许多继承. (1)继承 cla ...
- java中switch用法举例范围_Java中Switch用法代码示例
一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样), 在java1.7后 ...
- java中Iterator用法总结
Java中Iterator用法 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级& ...
最新文章
- 2021年大数据Spark(三十七):SparkStreaming实战案例二 UpdateStateByKey
- 某40岁程序员找工作,因技术老旧被拒绝,竟泪洒当场!
- 【LeetCode】无重复字符的最长子串【滑动窗口法】
- java B2B2C Springcloud多租户电子商城系统-Spring Cloud Sleuth
- Linux平台上SQLite数据库教程(一)——终端使用篇
- Flume与Kafka整合案例详解
- slim 搭建rnn_使用Keras搭建cnn+rnn, BRNN,DRNN等模型
- 本周题解(9.12)
- 一周畅销书速报 | 端午节特别版
- 为移动硬盘(硬盘盒)安装linux(傻瓜式,简单,高效)
- 如鹏网.Net三层架构第二章登录和会员管理
- .NET 将PDF转成图片之Magick.NET(亲测可用)
- 1.3.1 互联网的边缘部分(资源子网)
- caniuse_使用此工具将CanIUse表嵌入到您的网站中
- 今天看continous delivery看到extreme programming
- 【云原生】这么火,你不来了解下?
- 京东方和TCL为争夺全球液晶面板老大位置,展开并购竞赛
- ios 文本翻转_UIButton,UILabel文字旋转(倾斜)
- CRM及协同办公高保真原型、审批管理、办公申请、工单管理、任务管理、日程管理、工作报告、签到考勤、客户管理、销售线索、商机管理、订单管理、账务管理、统计报表、回款管理、发票管理、报销管理、客户关系管理
- 开源 java CMS - FreeCMS2.6 自定义表单
热门文章
- ERP实施过程中的沟通管理研究
- 大型企业网络配置系列课程详解(七) --NAT的配置与相关概念的理解
- QT编译静态库与动态库
- QT4升级QT5调研报告
- python深复制_Python深浅拷贝
- python中能用π吗_python里π
- 目录遍历漏洞_雷神众测漏洞周报 2020.10.052020.10.114
- csv在python中的意思,在python中解析csv
- 搜索引擎html和css,CSS样式对搜索引擎排名的影响
- eclipse git拉取失败_收藏!工作中Git使用实践和常用命令流程合集