ImageVerifierCode 换一换
格式:DOCX , 页数:5 ,大小:44.58KB ,
资源ID:3085653      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3085653.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(创建使用触摸屏的Java 程序.docx)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

创建使用触摸屏的Java 程序.docx

1、创建使用触摸屏的 Java ME 程序杨建强摘要: 介绍了 Canvas 类中可用于捕获触摸屏事件的方法, 创建了一个类似于 iPhone 手机上的图片浏览程序。关键词: Java ME; Canvas1 Canvas 类Canvas 类位于 javax.microedition.lcdui 包中, 它提供了低级屏幕和图像操作方法。该类自身是抽象类, 使用的时候需要给出具体的实现。Canvas 中最重要的方法是 paint (Graphics g),它完成图像的实际绘制。当然, 在这里 paint () 方法并不是重点, 感兴趣的是其他 5 个方法, 它们可用于创建使用触摸屏的 Java ME

2、 程序。这些方法包括hasPointerEvents ()、hasPointer-MotionEvents ( ) 、pointerDragged ( int x, int y) 、pointerPressed(int x, int y), 以及 pointerReleased (int x, int y)。这 5 个方法最初被用于处理具有指点能力的界面也即用户能够使用指点设备与这样的界面交互。不过, 在具有触摸功能的非指点设备上, 这些方法工作得一样好。当发生指点事件时, 也即按下、释放和拖动指点设备时,系统会分别调用pointerPressed (int x, int y) 、pointe

3、rReleased(int x, int y) 和 pointerDragged (int x, int y) 方法, 此时, 参数 x、y 中存有指点事件发生时指点所在的坐标。因此, 可以利用这些方法获得指点所在的位置, 并根据需要完成相应的操作。注意, 系统对这些方法的调用是串行的, 也即系统从不在前一个调用方法返回之前调用另一个方法。方法hasPointerEvents() 检查设备是否支持指点按下和释放事件。当 has-PointerEvents () 返回 true 时, 意味着设备支持 pointerPressed(int x, int y) 和 pointerReleased (

4、int x, int y) 方法。方法 has-PointerMotionEvents () 检查设备是否支持指点移动事件。当hasPointerMotionEvents () 返回 true 时, 意味着设备支持 pointerDragged(int x, int y) 方法。2 利用 Canvas 创建触摸屏图片浏览器有了前面的基础, 现在来创建一个类似于 iPhone 手机上的触摸屏图片浏览器。首先,让先看一下程序运行时的屏幕截图, 从而搞清楚要实现的效果是什么。如图 1 显示Java ME 程序启动后加载的图片, 以及稍微向左拖动或滑动该图片后的效果。图 1 刚加载的图片(左) 和向左

5、稍微滑动之后的图片(右)顺便说一下, 使用 Java ME SDK 3.0 作为测试平台, 并选用DefaultFxTouchPhone1 作为目标模拟器。因此, 给出的屏幕截图来自于电脑上运行的模拟器。当然, 在模拟器只能使用鼠标来代替手指。选择的图片比屏幕的尺寸要宽一些, 为的是创造出图片滚动的效果。在实际设备上, 当手指在屏幕上左右滑动时, 程序会根据滑动的距离显示出当前图片的剩余部分, 或者显示出前一幅或下一幅图片。图片刚加载时剩余部分位于屏幕右侧。程序是这样设置的, 如果水平滑动的距离少有 20 个点(像素),将显示出当前图片的剩余部分。如果滑动的距离超过 20 个点,则显示前一幅或

6、下一幅图片(分别对应向左、向右滑动), 如图 2 所示。要达到的效果就是通过手指的滑动来逐个显示图片库中的图片。图 2 刚加载的图片(左) 和向左(或向右)滑动超过 20 个点之后的图片(右)知道了想要的结果, 现在来看一看完成上述任务的 Canvas 类的代码。public class BrowseImageCanvas extends Canvas private boolean scroll = false;private int currentImage = 0;private Image images; / 存放多个图片,相当于图片库private int pressX, relea

7、seX, dragX = 0;public BrowseImageCanvas() / 启动时加载图片,这里加载 3 个图片images = new Image3;images0 = Image.createImage(“/flower0.jpg“);images1 = Image.createImage(“/flower1.jpg“);images2 = Image.createImage(“/flower2.jpg“);protected void paint(Graphics g) g.setGrayScale(255);g.fillRect(0, 0, getWidth(), getH

8、eight(); / 清屏if (scroll) / 滚动当前图片g.drawImage(imagescurrentImage, -dragX, 0,Graphics.LEFT | Graphics.TOP);scroll = false;return;if (pressX releaseX) / 向左滑动,显示前一幅图片currentImage-;if (currentImage 20) / 滑动距离超/过 20 个点加载新图片repaint();protected void pointerDragged(int x, int y) /在这里/决定是否滚动图片int deltaX = pre

9、ssX - x;if (Math.abs(deltaX) getWidth() dragX += deltaX;if (dragX imageWidth) dragX= imageWidth - getWidth();scroll = true;repaint();程序中, pointerPressed ( ) 、pointerReleased ( ) 、pointer-Dragged () 方法设置各种参数, paint () 利用这些参数来决定是否滚动当前图片或显示新图片。在pointerPressed () 方法中,保存了用户触摸位置的 x 轴坐标, 然后, 在pointerReleas

10、ed ()和 pointerDragged () 方法中确定用户手指沿水平方向移动的距离大小(deltaX)。如果移动超过 20 点, 则显示新图片, 否则就沿 x 轴方向卷动图片。可以左右两个方向移动。当然, 为了简化问题, 程序忽略了沿 y 轴方向的移动。3 结语自 Java ME 诞生以来, 它就已经具备了满足触摸屏界面的能力, 只是那些提供 Java ME 实现的设备制造商没有跟上步伐。介绍了 Canvas 类中的能够捕获触摸屏上指点运动的接口,并以一个类似于 iPhone 手机上的图片浏览程序来演示其使用方法。希望能够起到抛砖引玉的作用, 启发读者写出更加实用的触摸屏 Java 程序。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。