- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
017-018低级用户界面
2006 《J2ME程序开发设计(上)》 专业教程 理论讲解部分 Ver 3.1 * 第6章 低级用户界面 * 课程概述 Canvas类概述 绘制和重绘屏幕 低级事件 重点 绘制和重绘屏幕 低级事件 难点 绘制和重绘屏幕 低级事件 学习目标 掌握J2ME低级用户界面 6.1 Canvas类 6.1.1 Canvas类概述 低级用户界面主要用作游戏程序的开发,以及其他需要对屏幕精确控制或者接收低级事件的应用程序。利用低级用户界面API,开发者可以对设备进行更精确的控制,但更大的灵活性意味着更少的可移植性。 6.1 Canvas类 6.1.1 Canvas类概述 Canvas是Dispayable的直接子类,属于J2ME中的低级API。用户利用这些低级API可对设备精确控制,如绘制像素、接收原始的用户输入事件等。 Canvas与高级API相比控制更加灵活,但同时是以其复杂性、高成本为代价的,并牺牲了一定的可移植性。它的基本用法与其他Displayable对象一致。 6.1 Canvas类 6.1.1 Canvas类概述 Canvas类是Displayable类的子类,它提供了绘制方法以及应用程序的一些低级事件处理方法。 由于Canvas类的paint方法被声明为抽象方法,所以Canvas类也是一个抽象类。在建立Canvas子类的时候,要求程序提供paint方法的实现。 而低级事件处理方法未声明为抽象方法,其默认实现为空。 6.1 Canvas类 6.1.1 Canvas类概述 显示屏幕上能够实际用于绘制的区域因设备的不同而有所差异。因此为了保证应用程序具有较好移植性,一般不直接设定好屏幕的尺寸,而是通过调用getHeight()和getWidth()方法来获得具体尺寸。 获取屏幕宽度: int width = getWidth(); 获取屏幕高度: int height= getHeight(); 6.1 Canvas类 6.1.1 Canvas类概述 Canvas的坐标原点位于左上角,其最下角的坐标为(getWidth(),getHeight())。 屏幕的上部分为设备保留部分,用来向用户指示电量、信号强度、设备状态等。 下面部分用于MIDP设置菜单等,既可以是应用程序设置的Command软键,也可以是MIDP实现自动设置的菜单等软键,其位置由系统决定。 6.1 Canvas类 6.1.2 绘制和重绘屏幕 paint(Graphics g)方法用来绘制屏幕。这个方法是一个抽象方法,应用程序必须实现这个方法才能够绘制图形。如果在Canvas的子类中没有实现这个方法,将会报告编译错误。 paint方法被传入一个Graphics对象g,g所设置的矩形区域定义了屏幕上可绘制的区域,也就是需要重绘的区域。而应用程序不需要去了解paint调用的底层实现。 public void paint(Graphics g) { g.setColor(200,200,255) ; g.fillRect(0,0,getWidth(),getHeight()) ; } 6.1 Canvas类 6.1.2 绘制和重绘屏幕 在绘制屏幕时,程序中不直接调用paint()方法。当把Canvas的子类对象作为参数设置在setCurrent()方法中时,程序会去自动调用paint()方法。 MyCanvas mc = new MyCanvas() ; display.setCurrent(mc) ; 6.1 Canvas类 6.1.2 绘制和重绘屏幕 重绘时,在应用程序中同样不应该直接调用paint()方法来实现,而应该使用repaint()方法。调用repaint()方法会使系统调用paint()方法。 repaint(); 6.1 Canvas类 6.1.3 低级事件 应用程序接受按键事件,对于要向MIDP应用程序报告事件的每个按键都被分配一个按键代码,每个物理键所对应的按键代码的值惟一的。 MIDP定义了按键代码,这些按键代码符合ITU-T标准电话键盘所定义的按键。在键盘上可能会出现其他按键,为了保证可移植性,应用程序应该只使用标准的按键代码。 6.1 Canvas类 6.1.3 低级事件 Canvas类
文档评论(0)