郭克华J2ME移动开发实战教学视频讲义04
- 格式:pdf
- 大小:399.18 KB
- 文档页数:26
《J2ME程序设计》课程教学大纲一、课程基本情况开课单位:计算机与信息工程系课程编码:适用专业:软件修课方式:必须总学时:68学时考核方式:考试教材:《J2ME移动应用开发》郝玉龙北方交通大学出版社 2006.9教学参考书:《精通J2ME无线编程》,林胜利,中国铁道出版社,2004年二、课程的性质、任务和目的本课程是计算机软件专业的一门专业基础课程,重在培养学生的移动设备实践开发能力,适应软件企业的工作环境和业界标准,并和国际先进的软件开发理念保持同步。
通过本课程学习,学生应该了解并掌握J2ME技术基础,CLDC与MIDP基本概念,熟练应用J2ME技术开发基于移动设备的应用系统或游戏系统,并了解移动增值业务系统的开发基础。
学习本课程学生应达到如下要求或能力:1、掌握J2ME技术基础以及CLDC与MIDP的基本概念2、熟练应用J2ME技术编写简单应用软件系统3、熟练应用J2ME技术编写简单游戏4、了解无线增值业务(如SMS)应用系统的开发三、课程的主要内容和学时分配(一) 主要内容第1章 J2ME概述 2学时1.1 J2ME简介1.2 J2ME架构1.3 技术规范第2章 Hello World 2+2学时2.1 第一个实例2.2 J2ME程序开发流程2.3 代码解释2.4 JBuilder 9的配置2.5 使用JBuilder 9开发Hello World第3章 MIDlet和MIDlet Suite 4+2学时3.1 MIDlet概述3.2 MIDlet的打包3.3 MIDlet的生命周期3.4 MIDlet的安全管理第4章 MIDP用户界面——高级API 6+2学时4.1 MIDP用户界面概述4.2 高级API详述4.3 开发实用程序第5章 MIDP用户界面库——底层API 8+4学时5.1 Canvas类概述5.2 设备及屏幕属性5.3 基本作图属性设置5.4 基本图形操作5.5 剪切区操作5.6 输入处理5.7 多线程5.8 定制Item5.9 开发实用程序第6章 MIDP游戏编程 6+4学时 6.1 游戏API概述6.2 GameCanvas类6.3 LayerManager和Layer6.4 Sprite6.5 TiledLayer6.6 游戏设计第7章 MIDP网络编程 8+4学时 7.1 通用连接框架7.2 输入输出流7.3 HTTP协议7.4 使用HttpConnection编程7.5 Socket编程7.6 无线消息传递7.7 PushRegistry7.8 网络安全和MIDlet的签名认证第8章永久存储 4+2学时 8.1 永久存储概述8.2 RMS基础8.3 账务管理程序附录A J2ME开发基本环境设置 2+2学时 A.1 获取软件包A.2 软件包安装与配置A.3 J2ME网络资源附录B CLDC概述 2+2学时 B.1 CLDC的目标和功能B.2 CLDC 1.1与CLDC 1.0的区别B.3 CLDC的安全要求B.4 CLDC中虚拟机的变化B.5 CLDC中的类库附录C MIDP概述 2+2学时 C.1 MIDP的范围和软硬件要求C.2 MIDP的包概述C.3 MIDP的部署-Over-The-Air (OTA)C.4 MIDP程序的效率Borland认证课程介绍(二) 学时分配四、课程教学基本要求及重点1.J2ME概述了解J2ME的基本概念,开发架构以及采用的规范,掌握J2ME开发所需基本条件以及开发环境所需软件基础。
该套教程采用中文软件进行录制,让初学者即使英文不好,也可以轻松的掌握并制作出精美的课件。
目录第1节学习思路讲解教程的安排,以及如何学习第2节启动程序启动程序第3节新建文档新建文档第4节保存文档保存文档第5节关闭文档关闭文档第6节打开文档打开文档第7节认识界面认识界面第8节界面布局界面布局第9节设置影片大小设置影片大小第10节设置影片通道设置影片通道第11节设置影片背景设置影片背景第12节控制影片控制影片第13节舞台的缩放00:01:24舞台的缩放第14节移动舞台00:01:24移动舞台第15节发布设置00:01:51发布设置第16节设置影片标题00:02:59设置影片标题第17节设置窗口大小00:01:08设置窗口大小第18节设置标题栏00:02:26设置标题栏第19节设置图标00:01:52设置图标第20节上级练习—欢迎程序100:03:34上级练习—欢迎程序1第21节上级练习—欢迎程序200:02:33上级练习—欢迎程序2第22节上级练习—欢迎程序300:02:47上级练习—欢迎程序3第23节上级练习—欢迎程序400:03:16上级练习—欢迎程序4第24节上级练习—欢迎程序500:03:41上级练习—欢迎程序5第25节思考延伸00:02:01思考延伸第26节学习思路00:02:35第27节显示演员表00:01:06第28节选择演员00:01:52第29节移动演员00:04:20第30节更改名字00:01:36第31节演员属性00:01:33第32节添加注释00:01:08第33节设置演员表00:01:21第34节新建演员表00:02:36第35节关闭打开演员表00:03:25第36节管理演员表00:02:40第37节上机练习—动态菜单1 00:03:02第38节上机练习—动态菜单2 00:02:16第39节上机练习—动态菜单300:03:45第40节上机练习—动态菜单4 00:05:31第41节上机练习—动态菜单5 00:02:44第42节思考延伸00:01:20第43节学习思路00:01:25第44节导入媒体00:03:54第45节工具面板00:04:19第46节绘图面板的功能00:02:08第47节绘图面板的界面00:02:09第48节绘图面板—套索00:02:58第49节绘图面板—选取00:00:51第50节绘图面板—中心和橡皮00:01:55第51节绘图面板—移动缩放00:01:24第52节绘图面板—绘制00:05:53第53节绘图面板—规则形状00:03:20第54节绘图面板—色彩00:05:43第55节绘图面板—修改00:03:27第56节矢量图使用100:04:21第57节矢量图使用2 00:03:40第58节文字窗口1 00:01:38第59节文字窗口2 00:01:55第60节思考延伸00:04:09第61节学习思路00:02:16第62节创建精灵00:02:16第63节更改属性00:01:26第64节选择精灵00:01:55第65节精灵顺序00:01:48第66节设置属性1 00:05:33第67节设置属性2 00:06:46第68节辅助线00:03:01第69节网格00:01:53第70节对齐面板00:05:22第71节上机练习—片头1 00:01:22第72节上机练习—片头2 00:02:51第73节上机练习—片头300:01:35第74节上机练习—片头4 00:03:24第75节上机练习—片头5 00:01:52第76节思考延伸00:00:58第77节学习思路00:02:25第78节运动动画00:03:44第79节大小动画00:02:39第80节颜色动画00:02:58第81节旋转动画00:03:23第82节倾斜动画00:01:23第83节动画快慢00:04:36第84节变换精灵00:01:02第85节精灵帧00:01:38第86节逐帧动画00:05:44第87节胶片环00:03:52第88节单步录制00:03:18第89节实时录制00:04:31第90节速度通道100:06:22第91节速度通道2 00:02:32第92节过渡通道00:05:57第93节声音通道00:02:07第94节脚本通道00:00:48第95节上机练习—相册1 00:04:57第96节上机练习—相册2 00:01:46第97节上机练习—相册3 00:01:16第98节思考延伸00:01:08第99节学习思路00:01:08第100节行为库00:02:12第101节添加行为00:02:45第102节修改行为00:03:11第103节删除行为00:02:02第104节新建行为00:04:07第105节循环行为00:02:29第106节下一个标记00:06:32第107节上一个标记00:03:03第108节到指定标记00:05:10第109节退出行为00:02:06第110节改变指针00:03:43第111节更改透明度00:04:38第112节上机练习—完整课件00:03:02第113节上机练习—完整课件2 00:06:46第114节上机练习—完整课件3 00:08:17第115节上机练习—完整课件4 00:02:51第116节上机练习—完整课件5 00:03:39第117节上机练习—完整课件6 00:03:09第118节上机练习—完整课件7 00:02:26第119节上机练习—完整课件8 00:02:08第120节上机练习—完整课件9 00:05:41第121节上机练习—完整课件10 00:05:43第122节上机练习—完整课件11 00:03:57第123节上机练习—完整课件12 00:04:58第124节上机练习—完整课件1300:04:26第125节上机练习—完整课件14 00:04:14第126节上机练习—完整课件15 00:02:46第127节上机练习—完整课件16 00:02:27第128节上机练习—完整课件17 00:01:26第129节上机练习—完整课件18 00:03:57第130节思考延伸00:01:24课程网址:/course-3796.html?a=wenku。
郭克华J2ME移动开发实战教学视频讲义第9章多线程郭克华所有作品由ChinaSEI独家发布。
网址为:对应视频可在上下载。
本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错,请多包涵。
在不盈利的情况下,欢迎免费传播。
版权所有.郭克华本讲义经过修正、扩充,连同视频,由清华大学出版社出版。
详细可查询/49067,/product.aspx?product_id=20742080第9章多线程【本章导读语】多线程也是Java里面的常见的内容。
实际上,多线程最直观的说法是:让应用程序看起来好像同时能做好几件事情。
例如:一个程序进行一个用时较长的计算,我们希望该计算进行的时候,程序还可以做其他事情。
此时,多线程就显得比较有用。
由于J2SE中对多线程进行了系列的讲述,所以这一章中主要针对多线程中最重要的内容进行讲解,涉及多线程的开发及其安全性。
【9-1】多线程的必要性〖实例需求〗为了让读者了解为什么需要多线程,我们制作如图9-1的界面:图9-1 程序效果在界面有一个Form,在Form里面每隔1秒钟添加一个“Hello”。
〖开发过程〗第一步:编写代码。
如果不考虑本章内容,这个题目可以用前面学过的内容来作,新建一个项目Prj9_1,在里面创建一个MIDlet1,编写代码如下:J2ME移动开发实战教程MIDlet1.javapackage prj9_1;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Form;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class MIDlet1 extends MIDlet {private Display dis;private Form frm = new Form("界面");protected void startApp() throws MIDletStateChangeException {Display.getDisplay(this);dis=dis.setCurrent(frm);this.print();//代码行1:frm.setTitle("其他事情");}public void print(){while(true){frm.append("Hello\n");try{Thread.sleep(1000);}catch(Exception ex){}}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}protected void pauseApp() {}}运行这个MIDlet,就可以得到如图9-1的界面。
郭克华J2ME移动开发实战教学视频讲义第4章TextBox,Ticker和Alert郭克华所有作品由ChinaSEI独家发布。
网址为:对应视频可在上下载。
本讲义属于郭克华团队网友整理,比视频略有扩充,如果有文字等小错,请多包涵。
在不盈利的情况下,欢迎免费传播。
版权所有.郭克华本讲义经过修正、扩充,连同视频,由清华大学出版社出版。
详细可查询/49067,/product.aspx?product_id=20742080第4章 TextBox,Ticker和Alert【本章导读语】Displayable的子类可以充满整个界面。
首先我们复习一下Displayable的结构。
打开文档就可以发现,Displayable的继承结构如下:我们知道,Displayable的子类中,Canvas是用于创建低级界面,将在后面讲解;Screen 用来创建高级界面。
在Screen的子类中,除了前一章提到的Form和List之外,还有TextBox(文本框)和Alert(提示框)。
在J2ME程序开发中,文本框TextBox是一个常见的组件,在短信界面、信息处理界面中应用很广;在复杂的J2ME操作系统中,提示界面Alert 也能起到良好的作用。
因此,本章首先讲到的是javax.microedition.lcdui.Displayable的两个子类:文本框:提示框:另外,为了对界面进行渲染,滚动条Ticker也可以起到很大的作用。
不过,滚动条并不是Displayable的子类,不能单独出现,它只能对Displayable起到渲染的功能。
滚动条所对应的类为:本章首先对TextBox进行系列阐述,然后利用Ticker对界面进行一定的渲染,最后详细讲解Alert的用法。
【4-1】用TextBox开发短信界面〖实例需求〗javax.microedition.lcdui.TextBox也是Displayable的子类,也能充满整个界面。
本节中将模拟一个短信界面,实现如图4-1所示的界面:J2ME移动开发实战教程图4-1 程序效果在短信界面中,右下方有一个“获取文本”的按钮。
输入内容之后,选择右边的“获取文本”按钮,能够将短信界面中的内容打印在控制台上。
〖开发过程〗第一步:了解基本知识。
TextBox是文本框,是Displayable的子类,可以充满整个界面。
因此,TextBox添加到界面上的方法和Form完全相同。
打开文档,找到javax.microedition.lcdui.TextBox,首先介绍其构造函数,构造函数有1个:参数意义如下:参数1是给TextBox指定一个标题,为字符串;参数2决定了TextBox内的初始内容。
如果想要出现一个没有任何内容的空文本框,此参数可以用空字符串;参数3确定了TextBox内可以输入的最大的字符数,比如你可以写255,表示文本框内可以输入的最大字符数为255;参数4比较重要,确定了TextBox内输入内容的限制,如有些文本框只能输入数字,有些文本框只能输入密码等。
常见的限制有:1:TextField.ANY:任意字符;2:TextField.EMAILADDR:Email格式;3:TextField. NUMERIC:整数;x 2 x第4章TextBox,Ticker和Alert4:TextField.DECIMAL:小数;5:TextField.PASSWORD:密码;6:TextField.UNEDITABLE:不可编辑。
不过,如果作为短信界面,一般情况下,短信内容可以使用任意字符,因此,此处可以选用TextField.ANY。
如下代码:TextBox tbx = new TextBox("请您输入短信","",255,TextField.ANY);表示实例化一个文本框,标题为“请您输入短信”,初始时刻,文本框内没有任何内容,最多可以输入255个字符,并且可以输入任意字符。
在TextBox文档中,你可以用以下方法来获得文本框内的内容:也可以用如下方法来修改文本框内的内容:第二步:代码编写。
建立一个项目:Prj4_1,在里面建立一个MIDlet1,打开,将代码改为:MIDlet1.javapackage prj4_1;import mand;import mandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.TextBox;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class MIDlet1 extends MIDlet implements CommandListener{private TextBox tbx = new TextBox("请您输入短信","",255,TextField.ANY);private Display dis;private Command cmdGetText = new Command("获取文本",Command.SCREEN,1);protected void startApp() throws MIDletStateChangeException {Display.getDisplay(this);=disdis.setCurrent(tbx);tbx.addCommand(cmdGetText);x 3 xJ2ME移动开发实战教程tbx.setCommandListener(this);}public void commandAction(Command c, Displayable d) {if(c==cmdGetText){System.out.println("短信内容为:" + tbx.getString());}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}protected void pauseApp() {}}运行这个MIDlet,便得到图4-1的效果;输入“How are you?”。
控制台上打印:第三步:扩展。
(1)获取光标位置在短信界面中,有时候需要在在光标处进行内容的添加或者删除,怎样获得光标位置呢?打开TextBox文档,会发现TextBox有一个函数:可以通过这个函数来获得光标的位置。
注意,第一个字符前的位置为0,后面依此类推,例如,字符串“郭克华作品”的光标所对应的位置如下:在Prj4_1中建立MIDlet2,将代码改为如下效果:MIDlet2.javapackage prj4_1;import mand;import mandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.TextBox;import javax.microedition.lcdui.TextField;import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;public class MIDlet2 extends MIDlet implements CommandListener{private TextBox tbx = new TextBox("请您输入短信","",255,TextField.ANY);x 4 x第4章TextBox,Ticker和Alertprivate Display dis;private Command cmdGetPosition = new Command("获得光标位置",Command.SCREEN,1);protected void startApp() throws MIDletStateChangeException {Display.getDisplay(this);=disdis.setCurrent(tbx);tbx.addCommand(cmdGetPosition);tbx.setCommandListener(this);}public void commandAction(Command c, Displayable d) {if(c==cmdGetPosition){int position = tbx.getCaretPosition();System.out.println("光标位置:" + position);}}protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}protected void pauseApp() {}}运行,出现如图4-2界面:图4-2 程序效果利用键盘上的字母键,仿照手机输入字母的方法,输入“How are you?”,将光标移动到“are”的后面,选择命令按钮,控制台上会打印:x 5 xJ2ME移动开发实战教程该效果说明,光标的位置能够被正确得到。
(2)插入文本在短信界面中,在光标处插入文本经常被使用到,插入文本主要是用到TextBox中的函数:其中,参数1是文本内容,第二个参数是文本插入的位置。
如下代码:TextBox tbx = new TextBox("请您输入短信","China",255,TextField.ANY);tbx.insert("Hello",3);以上代码将在文本框内容的第三个位置插入另一个字符,因此,最后文本框中的内容变为:ChiHellona。
当然,一般情况下,使用插入文本功能还有更加灵活的场合,那就是在光标处插入文本,如添加某个标点符号等。