应用程序图形用户界面结构分析
图形用户界面编程在程序开发中非常重要,因为这是程序和用户之间交互的桥梁。很难想象一个应用程序没有用户界面。在J2SE中我们可以通过AWT/Swing开发图形用户界面,也可以使用近期备受关注的SWT。在J2ME专家组织定MIDP中的图形用户界面的时候,考虑到设备的性能比较有限,AWT/Swing主要是针对桌面应用程序而设计的原因,最终没有采用AWT/Swing作为MIDP的图形用户界面库。而重新设计了小巧的dui包。本章将主要讲述MIDP图形用户界面的体系结构,并对各个类的作用和使用作简单的介绍。
本文将按照MIDP2.0的规范进行介绍,我们必须清楚地知道在MIDP图形用户界面中是有低级图形用户界面和高级图形用户界面分别的。同样事件处理机制也有高低之分。
京东第三方商家给京东惹的麻烦 首先我们通过图表来展示一下MIDP2.0中图形用户界面的体系结构
从结构中我们可以看到,Displayable是所有用户界面组件的超类。从Displayable中分出两个分支一个是Screen,另一个是Canvas。前者是高级图形用户界面的超类,后者是低级图形用户界面的超类。首先我们来看高级图形用户界面,Screen的四个子类分别是TextBox,List,Alert和Form。其中前面三个是预定义类型的组件,他们的内容基本定义好了,比如TextBox就是多行的输入框。而最后一个Form类是开放类型的,也可以成为容器类型。Form是负责管理Item的(Item后面我们会谈到),Form根据Item的信息对他们进行布局等规划。下面我们分别来描述一下这四个高级图形用户界面组件的功能
TextBox是提供给用户输入多行数据的组件,我们也可以对用户的输入进行类型的限制。构造器如下:
下面我们必须介绍的是Item类,它是所有能够被添加到Form容器上的组件的父类,我们来看看Item的继承结构图
在MIDP2.0中,Item的子类共有8个,他们的功能各不相同,这里不再进行一一的介绍了。只对其中比较常用的类进行简单讲解。TextField类是我们经常使用的,它只能提供单行的输入。DateField类提供给用户输入日期的功能,ChoicGroup同样是实现了Choice接口,我们可以通过模式来把它用作单选和多选。CustomItem是在MIDP2.0中提供给用户的,其实它是介于高级和低级之间的用户界面,我们可以把它叫做增强型图形用户界面,因为它可以添加到Form中,且可以通过实现一系列的抽象方法来绘制自己。比如你可以实现一个表格组件。
Canvas类是所有低级用户组件的父类,我们通过实现Canvas类的paint(Graphics g)方法来绘制屏幕,主要是使用Graphics类提供的各种方法。在MIDP2.0中提供了一个GameCanvas类,是专门为游戏开发设计的。关于Canvas类可以说的很详细,但是这里只是为了介绍体系结构所以不再多说了。
接下来我们来看看MIDP图形用户界面中的事件处理机制,在高级图形用户界面中我们必须了解的是三个Listener和一个Command,其中的原理就是回调机制,回调在图形界面编程中广泛采用,它的原理就是底层函数调用高层函数,在java中我们定义一个接口,比如CommandListener,接口中定义一个方法比如commandAction(Command cmd,Displayable displayable)。当用户触发事件发生的时候,比如用户按下了一个Command,那么定义在CommandListener中的commandAction()方法会被调用,来处理相关的操作。其他两个Listener,ItemStateListener和ItemCommandListener的原理和CommandListener的原理一样不再多说。使用高级事件处理的时候,我们遵循的步骤就是,实现接口-注册监听器。
低级事件处理比较复杂,需要我们判断用户的输入来进行相应的处理。针对键盘事件,如下三个方法用来接收用户的输入
keyPressed(int keyCode)
keyReleased(int keyCode)
keyRepeated(int keyCode)
针对触摸屏事件,我们可以通过如下方法来接受用户输入事件。
pointerDragged(int x, int y)
pointerPressed(int x, int y)
pointerReleased(int x, int y)
关于低级事件的更多介绍,请参考本站的其他文章,这里不再讲解。
总结:本文并非针对某一问题进行详细的分析,而是通过对体系结构的介绍让大家从总体上把握MIDP的图形用户界面。其实我们的学习就是在头脑中对外界知识进行整理和消化的过程,经常有意识的去总结和抽象对学习是很有帮助的。
查看本文来源
内江白癜风医院哪家好兰州男科
上海治疗白癜风医院
-
GAI与老婆牵手逛街,发现被偷拍不生气,主动邀粉丝合影超亲和
5年末2日,有网民在社交跨平台透过了偶遇歌手王斯然和女儿GAI一齐逛街的图片,并附文交代在江口认识到了和后,...[详细]
-
穿搭和年龄无关!看这位50+博主就知道:不扮嫩不显据闻,照样很美
很多男士上了一定年长以后,生活的稳定状态甚是抗拒,花钱事也非常平常,对于身材的管理很快开始迟疑,在身...[详细]
-
绿竹生物还在亏损,产品未商业化!自研带状疱疹制剂,价格或为进口制剂一半
本文举例来说:早期新闻报 作者:王以丹丹医护大型企业IPO打算经年累月。就在刚刚即使如此的6月底27日-7月底3...[详细]
-
娱乐圈最干净的明星,造出道多年零绯闻,却一直不温不火
演艺界有很多歌星,颜值一流,演绎的网站,但却之前不辛不火,较大一部分原因是这些女星太过于低调,引人注...[详细]
-
“钻”进市民孤独,我们和成都首家社区画廊主理人聊了聊
寅识 Gallery 紧邻在武侯区中城东路郊外,这片街区也被人习惯性的称为黑正门,自打百货公司以来,寅识 Gallery 从...[详细]
-
高端化自欺欺人,国产手机又一块遮羞布被扯下,似乎是被苹果碾压
这两年低端化带入国产Android慢慢书呆子的话题,然而数日某Android企业公布的营业额却说明了所谓低端化赢得进展不...[详细]
-
-
TVB一日量减少三位艺人,余德丞受力捧仍离巢,女主播在节目中告别
TVB一日量减少三位艺人,余德丞受力捧仍离巢,女主播在节目中告别
-
职场内涵:像散步一样思考我们的职业目标
职场内涵:像散步一样思考我们的职业目标
-
原来,爱情从来很难离开过
原来,爱情从来很难离开过
-
苏州大学和河海大学,谁的统治力更更胜一筹?
苏州大学和河海大学,谁的统治力更更胜一筹?
-
高端化自欺欺人,国产手机又一块遮羞布被扯下,似乎是被苹果碾压
高端化自欺欺人,国产手机又一块遮羞布被扯下,似乎是被苹果碾压
-
王源新歌《逐光》将上线,粉丝跟随偶像再一骑行18公里,扛旗应援
王源新歌《逐光》将上线,粉丝跟随偶像再一骑行18公里,扛旗应援
-
-
-
-
"零售之王"换帅尘埃落定!27年"老招行"王良接棒,保持战略监督不偏移、不动摇
"零售之王"换帅尘埃落定!27年"老招行"王良接棒,保持战略监督不偏移、不动摇
-
钱江摩托:拟定増募资不超5.05亿元
钱江摩托:拟定増募资不超5.05亿元
-
为吃榨菜也是拼了?吉利&孚能科技12GWh电池项目动工
为吃榨菜也是拼了?吉利&孚能科技12GWh电池项目动工
-
给领导发传统节日祝福短信,情商高的人都知道这3点,怪不得领导喜欢
给领导发传统节日祝福短信,情商高的人都知道这3点,怪不得领导喜欢
-
高明的领导会容忍你很多错误,但这4个错误千万别犯上,否则必吃亏
高明的领导会容忍你很多错误,但这4个错误千万别犯上,否则必吃亏
-
推断一个领导值不值得跟随,会不会带你赚钱,就看这2点!很现实
推断一个领导值不值得跟随,会不会带你赚钱,就看这2点!很现实
-