- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第18章 文件属性查看器(GUI+文件操作)
本章通过Swing组件实现文件属性查看器界面,通过文件的操作来获取文件的相关属性并显示在界面中。“文件属性查看器”项目的实现,综合了图形用户界面的相关知识点和文件的操作。
本章的学习目标如下:
掌握组件和面板的使用方法;
了解文件的操作;
熟悉文件操作和访问的类。
18.1 文件属性查看器原理
“文件属性查看器”项目通过单击“查看”按钮,打开显示文件或目录的属性表格,这些文件或目录的具体位置为文本框中表示地址的字符串。
18.1.1 项目结构框架分析
文件属性查看器项目可利用Swing组件实现图形用户界面。文件属性查看器项目目录如图18.1所示,各个包的功能如下。
类FileAttrView:自定义窗口组件类。
类FileAttrFrame:利用Swing组件实现界面。
图18.1 项目目录
18.1.2 项目功能业务分析
本节将向读者介绍整个项目要实现的功能。这些功能包括文件属性查看器的初始化界面、查看已存在文件属性、查看已存在的目录属性,以及查看不存在的文件、目录属性和退出功能。
1.初始化界面
当运行文件属性查看器项目中的FileViewer类后,会出现如图18.2所示的初始界 面——文件属性查看器界面。
图18.2 初始化界面
2.查看已存在的文件属性
当出现初始化界面后,在“文件的地址”文本框中输入D:\\cjgong.txt字符串(已存在的文件地址),然后单击“查看”按钮,主界面的中间会显示出该文件的所有属性信息,具体过程如图18.3所示。
图18.3 查看已存在的文件
3.查看已存在的目录属性
当出现初始化界面后,在“文件的地址”文本框中输入D:\\cjgong字符串(已存在的目录地址),然后单击“查看”按钮,主界面的中间会显示出该目录的所有属性信息,具体过程如图18.4所示。
图18.4 查看已存在的目录
4.查看不存在的文件和目录属性
当出现初始化界面后,在“文件的地址”文本框中输入D:\\test字符串(不存在的目录地址),然后单击“查看”按钮,主界面的中间会显示出该目录的所有属性信息,具体过程如图18.5所示。
图18.5 查看不存在的目录过程
5.退出功能
当出现初始界面后,如果想实现退出功能,可以单击右上角的按钮,如图18.6 所示。
图18.6 退出功能
18.2 文件属性查看器项目
文件属性查看器项目具体程序架构如图18.7所示,它包含一个“文件属性查看器输入界面”的自定义窗口类FileAttrFrame.java,以及自定义窗口显示位置的类FileAttrView.java。
图18.7 程序关系图
18.2.1 实现显示文件信息的自定义窗口
FileViewer为“文件属性查看器”项目中的自定义窗口类,该类不仅继承了JFrame类,而且还实现了各个组件的相应功能,具体内容如代码18.1所示。
代码18.1 自定义窗口类:FileAttrFrame.java
public class FileAttrFrame extends JFrame {
//创建成员变量
private JPanel contentPane;
private BorderLayout borderLayout1 = new BorderLayout(); //创建布局管理器对象
private JTextField jTextField1 = new JTextField(); //创建文本域对象jTextField1
private JScrollPane jScrollPane1 = new JScrollPane(); //创建滚动面板对象jScrollPane1
private JTable jTable1; //创建表格对象
private JButton jButton1 = new JButton(); //创建按钮对象
File file; //创建文件对象
public FileAttrFrame() { //构造函数
//注册window事件
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit(); //调用jbIn
文档评论(0)