因为在MIDP手机编程中,没有控制台的概念,所以所有的MIDP手机软件都必须有自己的界面,下面就熟悉一下MIDP的界面类体系。

首先说明的是,MIDP的标准界面类都位于javax.microedition.lcdui包中,使用时一定要记得引入。

在界面体系中,所以可以直接显示的界面类都继承自同一个父类——Displayable。根据是否能直接操作屏幕,以及是否和屏幕尺寸相关,MIDP的界面类分为两大类:

1、高级用户界面——和屏幕大小无关,不能直接操作屏幕

高级用户界面类可以不需要修改就可以在所有支持Java的手机上显示,不同的手机显示方式会有所不同,但功能均可以正常使用。特别适合做对于界面要求不高的手机应用软件。

高级用户界面中的类又分为两个部分:

l容器类

容器类是指直接或者是间接继承自Displayable,可以直接在屏幕上显示的类。这些类都有一个统一的父类——Screen类,其他的都是实现的容器类,包括以下几个:

uAlert——提示框

uForm——窗体

uList——列表框

uTextBox——文本盒,多行文本框

以上这些类除了Screen类以外,都代表一类界面,在实际的开发过程中,即可以直接使用(只使用其对象)也可以使用继承。

l控件类

控件类是指那些不能在屏幕上直接显示,必须添加到容器类(注:MIDP中的所有控件类均只能添加到Form中)才可以显示的类。这些类也有一个统一的父类Item类,其它的都是实现的控件类,包括以下几个:

uChoiceGroup——选择框,包括单选和多选

uDateFiled——日期文本框

uGauge——进度条

uImageItem——图片项目

uStringItem——可变字符串项目

uTextFiled——单行文本框

在MIDP2.0中,新增两个控件:

uCustomItem——个性化项目,可以实现自己的控件

uSpacer——空白

在实际的使用中,根据界面的需要,选择合适的控件种类,然后添加到Form中进行显示。

2、低级用户界面——和屏幕大小相关,可以直接操作屏幕

低级用户界面可以让程序员直接操作界面,例如可以在屏幕上方便的绘制图片、文字以及基本的图形等,可以在手机中表现复杂的界面,所以很适合进行手机游戏以及移动证券之类的软件开发。但是低级界面一般和屏幕大小关系比较密切,所以在不同的手机型号之间实现的时候,一般需要进行移植。

低级用户界面主要包括两个类:

lCanvas——手机画布

该类代表手机屏幕,包含获得屏幕属性的一系列方法、事件处理的方法,以及最核心的paint绘制方法等。在MIDP2.0中该类有一个子类——GameCanvas。

lGraphics——画笔

系统所有的绘制动作都通过该类实现,包含一般的绘制方法、设置字体或颜色的方法以及一些技巧操作的方法等。

低级用户界面可以理解为使用Graphics这样一个画笔类在Canvas上进行绘制。

当然还有一个在高级用户界面和低级用户界面都可以使用的类——Command(软按钮类),使用该类可以在界面中实现软按钮的功能。

在整个界面体系中,除了以上最核心的类以外,还包含一些其他的辅助功能,主要分为如下几种:

1、高级用户事件处理体系

因为高级用户界面的事件处理采用了监听器(Listener)模式,所以在API中只提供了几个接口:

lCommandListener

处理软按钮(Command)事件。

lItemStateListener

处理控件(Item)状态改变事件。

lItemCommandListener——MIDP2.0新增

处理和控件相关的软按钮事件。

2、低级用户界面辅助类

在实际使用低级用户界面中,经常用到图片、字体等,这些也在界面体系中被实现成具体的类,分别是:

lFont——字体类

lImage——图片类

由于J2ME对J2SE进行了大量的简化,所以颜色没有实现成具体的类,而只是支持RGB格式的表示而已。

以上系统的介绍了MIDP的界面类体系,希望能使您对于界面类结构有更加深刻的认识。不足之处请积极指正!

初学J2ME时,看过的好文章(三)相关推荐

  1. linux防火墙伦堂,「linux专栏」自从看了这篇文章,我彻底搞懂了selinux和防火墙...

    很多网友提到linux的防火墙就犯难,现在又多出一个selinux,愈加分不清了.曾几何时,小编也是如此,不过当你看完这篇文章之后,再也无需为此犯难了. 何为SELinux 简单来书,SELinux( ...

  2. python装饰器原理-看完这篇文章还不懂Python装饰器?

    原标题:看完这篇文章还不懂Python装饰器? 1.必备 2.需求来了 初创公司有N个业务部门,1个基础平台部门,基础平台负责提供底层的功能,如:数据库操作.redis调用.监控API等功能.业务部门 ...

  3. python编程用什么电脑好-初学Python编程看哪些书比较好?

    原标题:初学Python编程看哪些书比较好? 我推荐你一些学习Python编程适合看的书,你可以试着看看是不是可以看懂,是不是感兴趣......书中藏着你想要的答案,下面就为大家揭秘学习Python编 ...

  4. 看完这篇文章之后,终于明白了编译到底怎么回事。

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  5. [J2ME]手机看交通监视器实时录像 实现说明

    [J2ME] 手机看交通监视器实时录像<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office& ...

  6. 看完这篇文章之后,终于明白了编译到底怎么回事

    看完这篇文章之后,终于明白了编译到底怎么回事. 1 对于同一个语句,有如下三种:高级语言.低级语言.机器语言的表示 C语言  a=b+1; 汇编语言  mov -0xc(%ebp),%eax add ...

  7. 【每周CV论文推荐】 初学目标检测必须要读的文章

    欢迎来到<每周CV论文推荐>.在这个专栏里,还是本着有三AI一贯的原则,专注于让大家能够系统性完成学习,所以我们推荐的文章也必定是同一主题的. 目标检测作为计算机视觉的基础任务之一,应用非 ...

  8. 学完计算机还是不懂,如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧...

    如果看了这篇文章你还不懂傅里叶变换,那就过来掐死我吧(二) Heinrich ·  15 天前 已于2014.6.6更新,地址:傅里叶分析之掐死教程(完整版)更新于2014.06.06 - 与时间无关 ...

  9. php 实现自动加载更多,$.ajax+php实战教程之下拉时自动加载更多文章原理分析二...

    摘要: 继上一篇<$.ajax+php实战教程之下拉时自动加载更多文章原理分析>文章进行进一步讲解,完善之前的代码及引入ajax和php相关内容...... 上次留下的问题不知道看官们有没 ...

最新文章

  1. [导入]我翻译的JavaScript文章
  2. MySQL-MMM如何调用远程管理卡命令去fence?
  3. zookeeper配置
  4. jffs2 启动的常见的问题
  5. 计算机数学基础 刘树利,计算机数学基础课件教学课件作者刘树利11课件.ppt
  6. 杭电oj首字母变大写
  7. java代码程序流程思想_控制执行流程——java编程思想第4章
  8. 将APP打包为IPA
  9. opencv成员函数data,step,at的使用
  10. 如何提炼游戏IP的价值,《梦幻西游三维版》给我们上了一课
  11. html中的特殊符号表示法
  12. gitlab 多人协同工作
  13. 明日之后 找不到服务器,明日之后服务器不一样怎么办_区服不同如何解决_软吧...
  14. Android显示人民币双横线的¥符号
  15. W25Q128 Flash
  16. 苹果自带的清理软件_软件| 卸载软件、清理文件,你只需Revo Uninstaller Pro(自带注册程序)...
  17. 扫福得福背后,支付宝 AR 红包的技术创新与故事
  18. oracle数据库监听说法正确,Oracle数据库错题合集
  19. git tag 打标签(我看过最透彻的文章)
  20. 【python】tkinter+pyserial实现串口调试助手

热门文章

  1. 自动驾驶中雷达感知:时域关系的充分利用
  2. 2021-10-26 数据存储的基本原理
  3. 国内首个,成都智算中心成东数西算应用混合方案的数据中心样板
  4. Anaconda 与 Pycharm 间的安装和链接
  5. 湖南对口计算机专业综合试题答案,湖南对口高考计算机专业综合试题汇总.doc...
  6. [C++实现 设计模式(14)] : 门面模式
  7. SQL集合函数中利用case when then技巧
  8. C语言程序设计-引言
  9. 『摆渡车 斜率优化dp及总结』
  10. 光电二极管的采样电路