图片浏览器--学习笔记(一)

 

图片浏览器 -- 学习笔记(一)

功能要求:

实现一个简单的图片浏览器,界面上有菜单栏和工具栏,主要支持打开、放大图片、缩小图片、查看上一张、下一张图片。

学到的知识点有:

Java 的反射机制、内部类、单态模式、命令模式

需要解决的技术问题有:

--如何使对话框实现文件过滤功能?

--如何实现打开文件的对话框?

--如何消除大量的 if...else 语句?

--如何实现打开图片?

--如何放大或者缩小图片?

--如何实现浏览“上一张”或“下一张”图片?

解决好上面的几个问题后,这个简单的图片浏览器就基本完成了。

这一部分主要解决前两个问题:

如何使对话框实现文件过滤功能?

如何实现打开文件的对话框?

这两个问题要放在一起分析,在用户单击“打开”按钮或“打开”菜单项时,主窗口应该弹出一个文件对话框,如下图所示:


 

在文件类型的下拉框中显示了用户可选择的文件过滤器列表,选择列表中的不同过滤器,红色区域中所显示的文件也不同,这就是过滤器的作用。图片浏览器显示的一般都是图片文件,所以这里需要程序员自己定义一系列专用的图片过滤器,专门过滤图片文件。

查过JDK API后发现可以使用java.swing.JFileChooser实现文件对话框,同时JFileChooser还提供了方法addChoosableFileFilter(FileFilter filter) 向用户可选择的文件过滤器列表添加过滤器。

再查看类FileFilter,发现它是一个抽象类,JFileChooser使用它过滤显示给用户的文件集合。

以上明确了可以使用什么类来实现文件对话框和文件过滤器,下面定义两个类:

一个文件对话框类(ViewFileChooser)来继承java.swing.JFileChooser
一个文件过滤器类(MyFileFiler)来继承javax.swing.filechooser.FileFilter

文件过滤器类(MyFileFiler)作为文件对话框类(ViewFileChooser)的一个内部类。
这里使用内部类好处简单解释下:
如果一个类A只对某个类B提供作用,那么可以把A定义为B的一个内部类。内部类能够被隐藏起来,不被同一个包中的其他类访问。

在文件过滤器类(MyFileFiler)中实现了两个重要的方法:
boolean accept(File f),用于判断文件是否属于图片类型
String getDescription(),用于获取过滤器的描述
这里判断一个文件是否属于图片类型的方法很简单,就是判断文件的后缀名。

 

以上就是过滤 文件和打开文件的 实现 方法。

第二部分来看看如何消除大量的 if...else 语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值