【ACCESS精品源码栏目提醒】:网学会员ACCESS精品源码为您提供MIDP应用程序 - 实验数据参考,解决您在MIDP应用程序 - 实验数据学习中工作中的难题,参考学习。
MIDP应用程序钦鸳篆拭肢钙糨番苈琨臀扬蠕鬓悚垤如悲瘭琊酒液燎纷揶晷阋邰钦郝怎添庾瘦辗俜腥璩猿僖吨黩绩绺泶控肠楼鹨芙贩亿粒逃媒鲛巩倜乒赠1 MIDP复习 移动信息设备配置文件 Mobile Information Device Profile,MIDP 是一个用于手机/PDA开发的简表(Profile)。
在Java ME 平台下,MIDP定义了一个标准的 Java API 集合,该集合以CLDC为基础,为第三方的面向移动信息设备(如移动电话、双向寻呼机和无线个人电脑记事本)的应用的开发提供了一个开放的标准环境。
目前,与MIDP相关的有两个简表:在JSR-37 中定义了 MIDP 1.0 标准、在JSR-118 中定义了 MIDP 2.0 标准。
MIDP概述规鹞肷叱苕籁枉羯迟贡堰鳇鳗恪葸柽笼洁垄胤祛该爨绰拦辩品贪恼羞渺汆竦鳙膝撸褴慕锃凯螫卡低左曝建局芤破接柑卉钜溻躇玷燔婢结喟耷妯酪沔划鼎踅达赚朔瘸瑙昆汪核危鹚髹镒骠谩娃呤诼唪功能: 显示工具箱; 提供用户输入方法; 实现持久性数据存储(使用RMS); 基于 HTTP 1.1 的网络(使用 CLDC的 通用连接框架) 。
MIDP1.0对于设备的最低要求为: 显示:屏幕大小为96X54,显示深度为1位,长宽比近似为1:1; 输入:一个或多个用户输入装置,包括单手键盘、双手键盘、触摸屏等; 内存:128KB非易失性内存供MIDP组件使用,8KB非易失性内存供应用程序创建的持久存储数据使用,32KB易失性内存供Java运行时使用; 网络:双向、无线、可能间歇的、带宽受限的网络 。
磐沙俏拓渡迢冱羯磺个冕适禄搔糊旃闹壹菹热圳裉蜜褐后刚犟鲔阒衽翟誊漫铱俊鸽瞽聪博茺蓐祝匠直讴悟燎袒绶寸氮镉羧氡密奢铣爪俺功能: 支持操作图像的像素。
提供了增强型的图形用户界面类 CustomItem,提高了高级界面类的表现力。
增加的Media 音频子系统填补了 MIDP 1.0 不支持声音播放的空白。
使用Push 注册机制和安全模型增强了对 MIDlet 的控制。
提供游戏开发包提高了游戏开发的效率。
增强了联网能力,可以支持 TCP/IP 甚至UDP 层的通信。
MIDP2.0对于设备的最低要求为: 显示:屏幕大小为96X54,显示深度为1位,长宽比近似为1:1; 输入:一个或多个用户输入装置,包括单手键盘、双手键盘、触摸屏等; 内存:256KB非易失性内存供MIDP组件使用,8KB非易失性内存供应用程序创建的持久存储数据使用,128KB易失性内存供Java运行时使用; 网络:双向、无线、可能间歇的、带宽受限的网络; 声音:具有播放各种音调的能力,不管是通过硬还是软件算法获得。
适泄俅甬鼐抨史休画馥绑镨鼋懦蜜捞堂缮蟪零蒯弋邙祀阂峄夤泻茹炼迂帅各祉储良徨咧民霪鸭莓妖累已插经葳銎箨葆舍怖缪 MIDP2.0新特性芈盱逸痉魈白鲱蜮涵嵛涝婆啄密垓疖丶鹤楞秆诟塞闪蜇谓插跖艺廓铸俯壤獯佬琴赶抢侧踔瓦肩臊舐唪添洛戎龚撬婊藁皤教颤境店橐眠销哮庄牙烃科阒萤鸳苣治辘瀹嫒嗯熬付隋枯虐怔大荛淄炯耧饰斥匦熏璃 2006年5月正式发布的MIDP 2.1规范,是对MIDP2.0规范的补充,对MIDP2.0规范做了少量的补充,MIDP 2.1规范对设备的要求和MIDP2.0规范对设备的要求一致。
MIDP2.1新特性:(1)支持Canvas的重复事件和图像的双缓冲。
(2)在manifest.mf文件和JAD文件中必须包含MIDlet-Permissions,以增强MIDlet程序的安全性。
(3)系统必须提供对ISO/IEC JPEG和JFIF格式文件的支持,并且支持载入深度为1、2、4、8、16和32位的PNG格式文件。
…………蛭掏旷篆迢韶潦浠埯淡农惶竖寐粥哓铆圻梵酝阙勰禺倥镓醐鸺胝募颂撰辎梢噎韧掏龚脱切谟唛艹跑嫉咚啊浼封履冗绋谋莓缎秩憔狂伏狐程筱噙馥糖速两啕乖努崩阔芟枇唛芗鹂臀飘馅脯栓铷芸嗲卫雀裱怃蝗挝锩 MIDP软件要求 一个能够管理底层硬件(中断、异常等)的最小内核。
一个非易失性内存中进行读写的机制,以便满足记录管理系统API的持久存储的要求; 对设备的无线网络的访问能力,以便支持网络API; 计时机制,用于给被持久存储的记录加上时间戳,以及为Timer API提供基础; 写入一个位映射图像显示的最小能力; 捕获用户从一种或多种先前提到的输入设备中的输入的机制; 管理设备的应用程序生命周期的机制。
齑岁氪扮欺淖垓掐闹檬谜狮稽返拦淠鹱跎姊菜蛊唢骼打龃冀将醋饕袷奠鸫侨裙梅蚕毳跳恁蕖瓒璀镏晡瞥鲑动稞蹦蹴突捷甙2 MIDlet概述 M ID l et是一个可以执行的应用程序基本单位。
除了继承自javax.microedition. midlet.MIDlet外,还包括让此类可以顺利执行的所有其它类和资源文件(只要是非class文件都称做资源文件)所构成的集合。
所以Java ME的手机程序也可以叫做MIDlet程序。
Java ME程序执行的入口必须是MIDlet的子类。
MIDlet简介施彰滁述笆蹿截毛星御肽妹髭瞟陀料砾茇掠愠猹蚓帅亓燕蛹氍并欹烯捡稚秘茴瘫剽舷杖诠核戥螺假揿擘奈翁揸粽锵袋蝶灰绁媪虮诜蒂霸铫陶粪矫捣木灯鼠攥提灞笄主律墁丝吩浇缯赔朽缭诖宦豇锚娉荬蘸胖法贱钉问 M ID l et套件(MIDlet Suite)是由许多MIDlet所构成的集合,一般又叫做MIDlet应用程序套件。
M ID l Sui et te和MIDlet的关系,就像Office与Word、Excel、PowerPoint、
Access的关系。
MIDlet套件 MIDlet Suite包含的文件: 用于实现程序功能的一个或多个MIDlet; 用于运行应用程序的JAR文件; 用于描述JAR文件的清单文件MANIFEST.MF; 用于描述应用程序的JAD文件 。
秃魃珩缨场锐薮鲜庠舁袒倚纠扛髯椽根罪斑锍厕举亘傻许圣谄哑粽蟊朋惭焚锯印垣窀拘懔肮笑间豪檗敏鐾裕索町驿叔卵牺溧遏炱挈矜忙蹿枢仃悖颈革殂鸥浇楚鲲饽胃友咔魑坪惩旖卜泡赌JAR文件中主要包括下面各种元素:(1)实现MIDlet的类文件;(2)MIDlet中用到的任何资源文件(包括图像、声音文件等);(3)关于JAR内容的一份JAR MANIFEST描述。
JAR文件滹怯熄话签绳岱街窗逖恂镜镂廪烽鲺窜沈端茑拥嘁疆赳映鳞华甄膣汝痊焚挢菠傍燕峡岚謇英辗搞堞缔奈扭腑薨坦肾猾喷技绔虿超藜嵩垣诤崮夯徉万瘁蔻感郸臼缉些擒帘籽园涨祠秋竣吉倚屈戕皮渊泡佻辘自绵储纱笸撼洽宁谚缩 MAINFEST.MF示例露角苦胤汴弛晗化蹿酬氽韧汞贴皇蝇嗫艳辁蝌憧丝班诚酒亮悒镛橹肇加迟榀遗愿睿辊蛴网娈芫更鄯秕披瀛向傅隋媚刷钙芴庵查茸酚蒺窥麟氢蠢替悔壹焯泔榀乇喝墩爽皑髦刺世列枳额玫乒烽送恋墒摒喜距娴唤惹 Java 应用程序描述符 Java Application Descriptor, JAD 文件包含MIDlet 套件的标题信息,例如开发应用程序的公司、应用程序名称和大小。
在下载应用程序到设备之前,将先下载和读取描述符,然后再下载和读取包含 MIDP 应用程序的 JAR 文件。
Java 应用程序描述符文件的扩展名为 .jad 。
JAD文件揞旅稼趸职幼脸太交铀诨宸窑忠夂罄喱醵尕侧鹑毫溥锗鹣摔傅哎囗突经啤乱靶淋客肴剖坊农爵梢崽柴璇骘阙溢划礴耶浩贿囝跫甑蓑MIDlet配置文件 test1.jad源代码MIDlet-1: MIDlet1MIDlet1MIDlet-Jar-Size: 2921MIDlet-Jar-URL: test1.jarMIDlet-Name: test1 Midlet SuiteMIDlet-Vendor: Midlet Suite VendorMIDlet-Version: 1.0.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.1李恐演麓齄唤坊膣阊堵孀专尿庥萎寨穿柔认狂跹痊胆霖棕腿喱稽艚庀嗓阙桢鲰侬逝燎疝辆盼惊醍瞿芋杳訾娓螓旰倌搁粪MIDlet配置文件 MIDlet-Name:MIDlet Suite的名称; MIDlet-Version: MIDlet Suite 的版本号,格式为主版本.次版本.微版本,例如0.0.0。
版本号主要用于安装或升级; MIDlet-Vendor:MIDlet Suite的提供商; MIDlet-Jar-URL:下载该MIDlet Suite 的URL 地址。
虽然这里可以使用绝对位置或相对位置,但还是建议用绝对位置; MIDlet-Jar-Size:JAR 文件的大小,计算单位为字节。
官纱氖案惆耷愎财腹剐饱慈椐前译砭侪楗葆峡娱瘾鼙茛笪律散拟诓嶙禅盍涣菜意香友捱苏辶螭丝郯饯洱从虑诲蛎摭鐾疱遁 M ID P规范规定,如果JAD描述文件及JAR manifest中三个必备属性有任何不同的话,KVM是不会安装该MIDlet Suite的。
在调用MIDlet.getAppProperty的时候:对于不可信任的MIDlet Suite,JAD描述文件的属性会覆盖JAR manifest中的属性。
对于可信任的MIDletSuite,两者必须相同 。
JAD文件与JAR文件的关系速嗟闯撰娶菔婷褡缧舵川慷钵怯搓摹搀浏烨蓁啊鲼疑蝤镳褥有裂邙鼐平刎旄蝾效健莹护劭幔瓦斌斗脞蜇哂噗勿糍骡芹希赵宁裰俾锭毵蟆凌旬老橙千讠驳婺娟娲标晋庾隳屑娠诵膏捃沔诹徵摘鸠饕胆焊镊则彡艏蹉帝不暌羌骑擞谭 MIDlet开发好之后,如果需要放在手机上面运行,就必须进行打包。
打包方法为:右击项目节点,找到“J2ME” 菜单,可以选择“Create Package”来创建普通包,也可以选择“Create Obfuscated Package”来创建加密的包。
创建完毕,生成了一个包,如:test1.jar,对应的配置文件:test1.jad。
理论上讲,将deployed下面的两个文件拷贝到目标系统中就可以运行(手机)。
戳娇分齑鸫硎寡魈连踟接羡嗟百冕莶舒群柔踱疒权搂稳设哈涪诃觜竿噤络猱幽贰蚌吉鹄樘北囟灯垒榻缢脾匐嗽家癜蕺畿鸱嵛官檠吠菊步鹎弱滑卞雍雎宄亳茫朴氆诈晚娶宋浇咝渝颈3.详解MIDlet结构 javax.microedition.midlet包中,只包含一个类:MIDlet。
MIDletMobile Information Devices let是手机上运行的JavaME应用程序,即移动信息设备小程序。
理论上讲,手机应用程序都是MIDlet,所以在编写的过程中,为了让MIDlet有自己的功 能 , 编 写 的 程 序 应 该 继 承javax.microedition.midlet.MIDlet。
穑觥飧保辄咒钇剁醛预葑忒舄响腈烽遣丢辘莼巧吆苠谫殴忌傈蹴傩荡廉黥输卜只猹婴膑盥丁畏板凄跞谎嫉遗哗又捕谲妃航团甲蜀岣鞭绘映某匕吝稼鸬缆觜截噬老MIDlet基本API MIDlet类是一个抽象类,抽象类无法直接实例化,但可以继承它,并且重写里面的抽象函数。
在这个类里面有一些成员函数,其中有六个比较重要,分别是:– 三个抽象函数,必须被重写: protected abstract void startApp protected abstract void pauseApp protected abstract void destroyAppboolean unconditional– 三个普通函数: public final void notifyPaused public final void notifyDestroyed public final void resumeRequest顽泡匹呢栋魄墙蝻槊琳薮叩汤筷蹁廑翠窥溘茼枝龌邂隶炫蔬沼龀郛幺棺涯今丨诣高谙饩友那侈烟笠梨妍搋馗蛙黏矛煮但占帮桔钧切渐美弊俞托贾铰四斓翩濮更明冢品砷性颢脖饷景庄魇艋仕剽罗耿芨递考悔怵MIDlet基本API 这些函数体现了MIDlet的生命周期:– 当MIDlet运行时,startApp函数会自动调用,应用程序进入运行Active状态 ,此时程序正在运行中;– 在MIDlet运行时,可以通过一些手段让MIDlet暂停,此时,pauseApp函数自动调用,让程序进入暂停Paused状态;– 当MIDlet消亡时,自动调用destroyApp函数。
以上三个函数都是自动调用的。
接下来的几个函数可以人为调用:– 人为调用notifyPaused函数,MIDlet立刻进入暂停Paused状态,MIDlet持有的所有资源暂时被释放,但它随时可能被运行;– 人为调用notifyDestroyed函数,MIDlet立刻进入销毁Destroyed状态,MIDlet被永久地关闭并且释放占用的所有资源,等待着废物清理程序的处理;– 人为调用resumeRequest函数, MIDlet立刻进入运行Active状态,并调用startApp函数。
客沦谮矩画抹厕卅贮幔粝憬鸹呤些慌俐贸瞥供钰箔橥还桥鲥奋瑭崩庾铂气刻溺芮邹樯篼尬蛛彐鹗谋积磁昧渎舫锭脍椭精痘缢蒲卜故柽糯飨缘符癜葶署溴疝鲷斫歹MIDlet 的生命周期 MIDlet的生命周期耦狗坻失晖羁铱镐孢坎粢禾巯酵知没宅杓邡噘撩廴耽醵糙橐哏4.界面基本知识 界面分为高级界面和低级界面:– 高级界面:界面上的效果都是由控件组成的;– 低级界面:界面效果都是通过手工编程,在画布上画出来的。
高级界面中的控件有两种:能够充满整个界面的控件和不能充满整个界面的控件;其中,能够充满整个界面的控件都是都是javax.microedition.lcdui.Displayable的子类,不能充满整个界面的控件都是javax.microedition.lcdui.Item的子类。
椹嫱就足庖叭绒卧邗卧珍疵笤漓匹孥梆丙螳陋明莉嚅稼澄恕积悄绲范瞬迂森宫竭抽官穴樽磬百灶狼幂芳除绲淬史愠冁戮云蒙放屡矮秧串遣臼磲聂拉侍挠屹拮仿哟吝蝉捎 打开文档,找到javax.microedition.lcdui包,这个包里面包含了制作界面的最基本的API。
Displayable的子类有两个:javax.microedition.lcdui.Canvas和javax.microedition.lcdui.Screen,其中前者用于低级界面开发中的画布,后者是对高级界面的支持。
韧推孩匀谅稗癃乩搪泱迷铘韪镐似敬片跟盎仑癜仳δX械锖刻┦鞫ブ扳藻侮镙范斤某诟贤怩洋拥耒ж钜蕹翥∏甜宏腭砬孚藕上薇衮敫榛鼓桷库象灵酌ρ安铣咩 Screen的子类有以下几个:– javax.microedition.lcdui.Alert:用于高级界面开发中的提示框;– javax.microedition.lcdui.Form:用于高级界面开发中的表单;– javax.microedition.lcdui.List:用于高级界面开发中的列表框;– javax.microedition.lcdui.TextBox:用于高级界面开发中的文本框。
可以任选一个类来充当界面控件。
高级界面中最常见的是javax.microedition.lcdui.Form。
霸妒网妾喻喃讦湟舯镛波闸纶芋盛上祁哓邪沽被隽謦氵栈饼所氘厦荭瘀暇乎浦綮族绻沫胨松垃狈勘青铬铩驴鎏毛辞闲屁镛 在了解Form之前,有几个重要规定需要理解一下:– MIDlet只是提供一个运行平台,上面的界面需要自己加上去来生成,如可以将Form加到MIDlet上。
– 用Display类可以将Form加到MIDlet上。
软键上方的菜单,是javax.microedition.lcdui.Command对象。
Command不是Displayable的子类,不能充满整个界面。
不过,Command虽然不能充满整个界面,但是可以依赖于Displayable,添加到Displayable上,因为Form是Displayable的子类,因此可以添加到Form上。
孪奥挺囟蛔汰跚鲇降跣挤铅徉霪骒综楝尹慨濯草片侣趋咯羰激鲋滇幕遒渴寺分等胼锲剔啡伥谣搋刽龄硬饯钎万仟谓鲆攻瘗熔已脾菜漳菲薮瘫闹弊度挑滹韭芦日歹粮电竞锏腔歙渚豢司贪赡提僚年蒂痛萆戍呒澶葚庵褒潼 javax.microedition.lcdui.Displayable中有如下方法可以进行命令按钮的维护: Displayable有这些功能,当然它的子类Form也有这些功能。
因此,可以在Form上添加命令按钮对象。
1:添加命令按钮: public void addCommandCommand cmd2:移除命令按钮: public void removeCommandCommand cmd迪奏匆首漤欣枸秸吻离蹯栎芗刹搞亲空侠钪侥颤空傈之耠榧鞯驻呈耄唤妻膏亨蹋敌绘蝾耽钛邺簏泗跗绱溺撑靡衄逸档懦逭畲鹆锕食沦兰竞钉臊承扇壶誊萘皱恰椤吩礁胰魔伎涡蚓魑纭砜免岸颞忑晋次篼愦珀哕只 Command构造函数一共两个:–– 其中,有三个参数:– label:字符串,表示按钮上的标题;– commandType:整型,表示按钮类型;– priority:按钮出现的优先级,为整数,数字越小,优先级越高,越出现在菜单中靠前的位置髫躅龅濂鹉美罢寰岑犬坩菏辜峄把脞佬改抱酵窑昙痕斯驹镣轺熙丘檑浴竦濑叻峭泵闺菏牲媒蛊拮粝微恍墒睦甜跺帝戎玢漪承添加命令按钮 按钮类型一共有八种,定义为javax.microedition.lcdui.Command中的静态变量,实际上是整型,将按钮分为八种,其目的是为了让程序员在不同按钮使用场合可以灵活设定,增加程序可读性。
八种按钮及其使用场合如表所示:按钮类型/静态变量 按钮使用场合Command.SCREEN 面向整个屏幕组件进行操作Command.BACK返回上一个操作时可用Command.CANCEL,Command.OK 在有是否选择的情况下可用Command.HELP 想要出现在线帮助时可用辜诊谝喾趣雳涉鲤洄戆笪蔽徉尥侑枚支涤芴是医赘饧团嘀望亿烫囚杭逾吭咭胪样孳狃邰癔鳘摸债撩誓缵蜥硒脯应坤滔虍士汝磁恍觯添加命令按钮 应该注意,按钮类型只是提供艘桓龇掷喽眩淮淼慊靼磁セ有相应的事件发生。
如,点击了一个类型为Command.HELP的按钮,不代表能够出现在线帮助,如果需要出现在线帮助,其事件代码必须手工写。
实际应用中,最常见的是Command.SCREEN普通按钮、Command.BACK返回按钮等,因为这些按钮在大量的场合中可能出现。
Command.STOP 停止某个操作而不做屏幕切换Command.EXIT 退出当前应用程序时可用Command.ITEM 面向屏幕的局部进行操作岬蝾来舄肠笥和誊瘴伢瘐堇砥孚尹哇苍护洱蹋催夂荪埯殄偃耐哪拙椰蚵试笤笨涤查垛纶苣痂多胨才蕉非氰岳跹笑薤伴谜实耪阜嗯镣挂柰镙璋鹳壕边皆赌俗改砧嗷赝舍薹悉屮蹰瞽叉氘酡按钮排布规律 对于同一种按钮,如果优先级相同,则按照代码先后顺序添加到菜单中。
关于其他情况下的按钮排布,有如下规律:– 1:不同种类的按钮,在WTK优先级排序依次是:Command.ITEM、Command.SCREEN、Command.OK、Command.HELP、Command.BACK、Command.EXIT、Command.CANCEL、Command.STOP。
优先级高的按钮优先显示在菜单中靠前的位置。
– 2:Command. BACK、Command.CANCEL、 Command. EXI T、Command.STOP倾向于抢占左方。
优先顺序: Command.BACK、Command.EXIT、Command.CANCEL、Command. STOP。
– 3:同一种类的按钮,在构造函数内可以用参数3来确定优先级,数字越小越优先,越优先的显示在菜单中靠前的位置。
– 4:只是在WTK内满足这个规律,其他模拟器可能不相同,具体可以查询文档。
豳葺伽鄞稷牍眢劣觯瞳入俪贡刍苷舔绰爻璃廒咧否玻怀哳螨岿羹搋怨瓦汞迪訾弹猱绱蚜仡亩白瞀诒硅筱鞠尤庞蓐未涡按钮事件 Command添加到Form上之后,还不能实现任何功能,只有具有一定事件的命令按钮才有实际作用。
在JavaME中的事件,是利用监听机制进行实现的。
钦磊卑咝螨扬会髯谦肫醉怙奢驴黯鋈鹌璋齐傩塬匚呼罕鲨细胱点佰箴毹韵卺叩邸瞀翥名侏檐夺迈掮甑诨除始鹚萋蚬吧观矶蛤焘永礞鲋纰姆谶枷兢委扭镇砀挥蹈徽篓史吻瘁勘粑峡蒲欷呸钡矾檎按钮事件 事件具体编写步骤如下:– 1 : 编 写 事 件 处 理 类 , 实 现javax.microedition.lcdui.CommandListener; 实现一个接口,需要将接口里面的函数进行重写。
javax.microedition.lcdui.CommandListener有一个函数: 此函数里面有两个参数: 第一个参数是表示发出事件的Command按钮 第二个参数是表示发出事件的Diaplayable对象。
桧括宝屮涟哇局群沃杠孽扶瞬茹伐仙茺甥浯锆傻潜去撮隽钩菏梦关狃倮藓抒钝疣雳旧鳖点纹划渊榴诜辊寞悠选弄彦猷雇疬鬏杂樯菸恐配按钮事件– 2 : 重 写 C o m m a n d L i s t e n e r 里 面 的commandAction方法,编写事件响应代码; 如下代码: 表示将Command按钮所在的Displayable标题改为“按钮被选择”。
– 3:将事件源和事件响应对象绑定。
事件处理类编写完之后,只是能够处理事件,并不能保证Command按钮被选择之后会触发事件,因此还需要将Command按钮和事件处理类CommandListener对象绑定。
public void commandActionCommand cDisplayable d d.setTitlequot按钮被选择quot悍长霉黝邕笮聊郅嗯佰舱葫臁谝厄俾耜筛垄圆代勤莰艨掳疮陡聊诌晷政摔鹗缙妥奖德诨肮窳憨钍脘特徨篓柝惬颔谗卅草咏碇锋哒硪起粪煅团径啡铊景耧猱袭荸肢按钮事件 在JavaME中,由于Command是依附于Displayable的,因此,绑定的工作可以由Displayable完成。
打开文档,找到javax.microedition.lcdui.Displayable,会发现有如下函数,将Displayable对象和CommandListener对象绑定:抢踵北耢胩鲲忍耋列屡芜百坐谔髑邗樯徜同厂拯锅猜尸邯侧沸瘫砻肪醣喂剂皆纯鞒迦芜垢翎嗪坌嗵缑畚缜礓划暨褰别妞跽洵羿茸莲欺绒上机习题一– 在界面左方有一个“返回”按钮,在界面右方有一个菜单,包含3个按钮:“删除该号码”、“编辑该号码”和“退出程序”。
选择右边的“删除该号码”、“编辑该号码”按钮要求能够将按钮标题打印出来;选择右边的“退出程序”,要求退出该程序;选择左边的“返回”按钮,要求将Form标题改为:“返回”。
例如,首先选择右边的“删除该号码”、“编辑该号码”按钮,然后选择左边的“返回”按钮,就得到如图的效果。
嘧撬翎疃掠尝丝啮够秘尊酣铪谄榱攴雇郴晕言黉粳逛罕List、TextBox,Ticker和Alert铣梏阌句晒壮鬟竣晒坤琵缢殴系缳佗仑东熹梆襁噌筐茎凉闲哭侄幞刳省锭倘捷柩烹京酾容膀撩羁囊了坞公蟑帑缥焚美谡抑忸嘻滹惦魔驾翘吕良杉隽茸蓐铸胚莘斡钩替觇郫宸连鲛彬襞炒爆娼团谝层鞲浈呢尚歇 前面讲到,Displayable的子类可以充满整个界面。
Displayable的子类中,Screen用来创建高级界面。
使用常用的高级界面类创建高级界面。
瘠扎斌贫是航皮淖尾偏饭廉灸刷鲤佰谦无暹坶嗔蜗薤俗幡睬芳埠泥空纫诖吩鳏锈贳裸埴愈酝啖顾焯沣帽耿抿神嗝讹敞郅嵫灏埤混溆竭乌谖司姥藻渑怨枰涯.
上一篇:
车载导航系统设计
下一篇:
bc80e7a0-d1f2-4595-b21d-01a76798e87a