购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 开发问题解析

在开发数码照片管理软件的过程中,笔者遇到了一些问题,现在将这些问题及其解析与读者分享,希望对读者的学习有一定的帮助。

在实现批量删除照片功能时,关键是如何解决随意选取照片的技术难题,设计的选取方式共有3种,具体的选取方式如下:

通过对上面3种选取方式的配合使用,就可以随意选取照片了,效果如图1.23所示。

figure_0051_0105

图1.20 单击鼠标按键选取

figure_0051_0106

图1.21 按下“Ctrl”键选取

figure_0051_0107

图1.22 按下“Shift”键选取

figure_0051_0108

图1.23 配合使用选取

在缩略图和幻灯片浏览方式中的缩略图,是显示在按钮组件上的,所以可以通过捕获按钮被按下的事件,处理照片的选取动作,不过在处理选取动作之前,还需要判断是否有“Ctrl”键或“Shift”键被按下,可以通过捕获按钮的键盘事件,获得最后被按下的按键的键值,下面是为按钮添加键盘事件监听器的完整代码:

figure_0052_0109

当有键盘按键被按下时方法keyPressed()将被触发,在此时获得被按下的按键的键值;当有键盘按键被释放时方法 keyPressed()将被触发,在此时将键值恢复为默认值。下面是为按钮添加动作事件监听器的部分代码:

figure_0052_0110

在 actionPerformed()方法中,将根据键值 keyCode 执行具体的选取动作。当“Ctrl”键被按下时执行的具体动作如下:

figure_0052_0111

当“Shift”键被按下时执行的具体动作如下,分为两种情况进行处理,即是否已经有图片被选中,具体代码如下:

figure_0052_0112
figure_0053_0113

figure_0053_0114 方法getLocation()返回的是一个Point类型的对象,代表一个点的坐标,如果组件是从左到右绘制的,则为组件左上角的点的坐标,如果组件是从右到左绘制的,则为组件右上角的点的坐标。

如果未按“Ctrl”键和“Shift”键时执行的动作,在清空原来被选中的图片后加入新选中的图片,代码如下: vI4t1WY9B+HSl7ldX592vTrzsYNT4d0oDy3nzHQdAxMbLUnopXuncAGSTwnnGBAM

figure_0053_0115
点击中间区域
呼出菜单
上一章
目录
下一章
×