高级2AlertTextBoxForm及屏显的跳转.docx
- 文档编号:9349351
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:15
- 大小:43.58KB
高级2AlertTextBoxForm及屏显的跳转.docx
《高级2AlertTextBoxForm及屏显的跳转.docx》由会员分享,可在线阅读,更多相关《高级2AlertTextBoxForm及屏显的跳转.docx(15页珍藏版)》请在冰豆网上搜索。
高级2AlertTextBoxForm及屏显的跳转
第四章高级用户界面与事件处理
(2)
高级用户界面之二(ALERTFORM等)
教学目标:
1.掌握Alert的构造与使用
2.掌握Form的构造与使用
3.掌握Form上放置的小元素的构造与使用
(1)侦听小元素,通过StingItem,发生动作
(2)侦听小元素,通过ImageItem,改变其内容
4.掌握屏显的切换
首先回忆上次课的教学内容,要求回忆出的内容有:
1编写手机程序用到了哪些元素?
屏,屏显(子项),菜单
2它们之间的关系如何?
3编写程序的基本步骤?
(1)取屏
(2)定屏显并生成(3)定菜单并生成(4)将菜单附在屏显上(5)完成交互,那么要做三步曲:
第一,接口说明;第二,侦听;第三交互动作CommandAction(c,d)
注意:
这些元素即可以在定义的时候生成,也可以在后面成员方法里生成。
对于屏显displayable,第一次课,就接触到了TextBox屏显,而上次课,我们学习了一个高级屏显:
List,那是一个选择屏显,今天,我们来学习其他几个屏显,并来研究一下各屏显之间如何实现跳转。
一Alert类
1作用:
是出现提示,也就是弹出式对话框。
2构造函数:
privateAlertalert;
alert=newAlert("alert","content",null,AlertType.CONFIRMATION);
分别是标题,内容,图片,类型(有5种类型,主要是声音不同)
3使用方法:
alert.setTimeout(3000);或者alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
4举例:
在上一课的程序的基础上,对交互动作进行修改。
(现场演示,加代码)
上一课的代码见:
F:
\liyi10-11
(1)\教学\高级语言程序设计B(j2me)-李祎\上课过程\2010-2011\4.高级2-Alert,TextBox,Form及跳转\ListMIDlet.java
问题:
如何点击第2个选项,跳到一个TextBox屏显上去并返回回来呢?
下面的红字部分不用讲了,因为commandAction已经讲过了,上一课的内容不在本课中过多的重复,否则新课无法讲下去。
在交互中完成屏显的转换。
(程序见第4章第2次课的目录list3,跳到另外一屏显)
引子:
思考这样的问题:
在上次课的列表屏显出现的时候,我们选择其中的一个选择项,可以跳转到另一个屏显上。
解决方法:
commandAction()中可以根据列表框的不同选择出现不同的内容,比如说,我们可以在选择第一个选项后出现Alert(具体程序见第四次课的list2目录)
if(arg1.equals(list)){
switch(list.getSelectedIndex()){
case0:
System.out.println("first");
Alertalert=newAlert("alerttitle","hah",null,AlertType.CONFIRMATION);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
break;
case1:
System.out.println("second");break;
}
问题:
为何显示不了我们所要的功能:
因为没有菜单。
所以要加一个菜单
请注意:
这种屏显转换是自动的,只适用于Alert这个类。
大多数情况下,要手动的转换。
多媒体演示一下程序的运行结果和部分代码
二案例:
屏显的转换(程序见E:
\J2ME\课件\liyi_4_高级用户界面与事件处理(2-FORM,ITEM)\gaoui)
1要求功能(多媒体演示一下要求实现的功能)
2分析:
只有一个display,而有二个屏显,这就涉及到屏显的切换,记住前面说过,想要显示哪一个,就display.setCurrent(哪一个)。
list上有两个菜单,textbox上有一个菜单,菜单我们都统一用前缀+Command来表达,这样清楚点。
3类图结构
4核心代码
构造函数:
publicDiplayableConvertMIDlet(){
list.addCommand(exitCommand);
list.addCommand(goCommand);
list.setCommandListener(this);
tb.addCommand(returnCommand);
tb.setCommandListener(this);
display.setCurrent(list);
}
命令行为:
publicvoidcommandAction(Commandc,Displayabled){
if(c==exitCommand){
try{
destroyApp(false);
}catch(MIDletStateChangeExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
notifyDestroyed();
}
elseif(c==goCommand){
if(list.getSelectedIndex()==1){
display.setCurrent(tb);
}
}
elseif(c==returnCommand){
display.setCurrent(list);
}
}
程序代码见:
F:
\liyi10-11
(1)\教学\高级语言程序设计B(j2me)-李祎\上课过程\2010-2011\4.高级2-Alert,TextBox,Form及跳转\DisplayConvert.java
//以下内容是原来备课内容,不讲了//
3思路(直接有电脑来讲,算是又一次地复习)
(1)首先把这些基本的元素,也就是屏,屏显,菜单都写出来
第一,写list屏显(包括挂在它上面的菜单,以及对它的侦听)
stringArray=newString[]{"first","second"};
imageArray=newImage[]{pic1,pic1};
list=newList("listtitle",List.EXCLUSIVE,stringArray,imageArray);
exitCommand=newCommand("exit",Command.EXIT,1);
goCommand=newCommand("sub",Command.EXIT,2);
list.addCommand(exitCommand);
list.addCommand(goCommand);
list.setCommandListener(this);
第二,写textbox屏显(包括挂在它上面的菜单,以及对它的侦听)
textbox=newTextBox("textboxtitle","hello",33,1);
returnCommand=newCommand("return",Command.EXIT,2);
textbox.addCommand(returnCommand);
textbox.setCommandListener(this);
第三,显示屏显(当然是第一个屏显)
display.setCurrent(list);
(2)进行交互(对屏显的侦听动作在同一个接口里写,不管有多少个屏显)
点EXIT要退出,点SUB要进入TEXTBOX屏显,点RETURN要返回到LIST
publicvoidcommandAction(Commandarg0,Displayablearg1){
if(arg0==goCommand){
switch(list.getSelectedIndex()){
case0:
display.setCurrent(textbox);break;
case1:
System.out.println("second");break;
}
}
if(arg0==exitCommand){
destroyApp(false);
notifyDestroyed();
}
if(arg0==returnCommand){
display.setCurrent(list);
}
}
多媒体演示程序的运行结果
三Form类
1特点:
是能够放很多的小元素
2构造函数:
Form(String title)
重要方法:
添加小元素:
append(Item item)
3小元素
(1)种类
StingItem,ImageItem,DataField,TextField,Guage,Spacer,ChoiceGroup等等。
(2)StringItem
构造函数:
StringItem(标记,值,小元素的风格)
例如我们添加一个字符串项目StringItem
privateStringItemstringitem;
stringitem=newStringItem("name:
","liyi",Item.HYPERLINK);//
其中第一个是标记,第二个是值,第三个是子项的呈现方式
form.append(stringitem);
(3)侦听小元素:
设置交互,侦听小元素(事先先设置好菜单,例如nameCommand,不管我们进行什么样的交互都是通过菜单来交互的,因此,我们要为侦听的小元素设置菜单):
前提:
做好一个菜单
首先:
侦听菜单要实现一个接口implementsItemCommandListener
其次:
对小元素进行侦听:
首先将子项与相应的菜单关联起来
stringItem.addCommand(goCommand);//注意不是屏显加菜单,是小元素自己加菜单
然后侦听
stringItem.setItemCommandListener(this);//是听小元素,不是听Form,侦听命令和随后的函数是不一样的。
,
最后:
要对侦听有动作:
侦听的动作必须在CommandAction(c,i)里来完成。
C是判断选择了哪个子项菜单,i是选择的那个子项。
publicvoidcommandAction(Commandarg0,Itemarg1){
//TODOAuto-generatedmethodstub
Alertalert=newAlert("alerttitle","haha",null,AlertType.ALARM);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
}
程序代码见:
第四次课第二部分的Copyofgaoui。
2009年新做代码见:
2009list-jump-textbox-form
2010年新做代码见:
F:
\liyi10-11
(1)\教学\高级语言程序设计B(j2me)-李祎\上课过程\2010-2011\4.高级2-Alert,TextBox,Form及跳转\FormMIDlet
四.案例:
图片的切换
1功能要求
在一个Form里显示一个图像子项目,选择菜单switch之后,改变成另外一个图像。
(多媒体演示程序要实现的目标)
所有程序代码:
见liyi_4_高级用户界面与事件处理(2-FORM,ITEM)\item
2分析
ImageItem(String label,Image img,int layout,String altText)
这里的布局layout表示图像显示的位置:
如:
Item.LAYOUT_CENTER
ImageItem这种小元素有一个方法,改变图象setImage()
3类图结构
4核心代码:
构造函数:
publicImageItemChangeMIDlet(){
Imageimage=null;
try{
image=Image.createImage("/pic1.png");
}catch(IOExceptione){
e.printStackTrace();
}
imageItem=newImageItem("default:
",image,Item.LAYOUT_CENTER,"wenzi");
imageItem.addCommand(changeCommand);
imageItem.setItemCommandListener(this);
form.append(imageItem);
display.setCurrent(form);
}
命令行为:
publicvoidcommandAction(Commandc,Itemi){
if(c==changeCommand&&i==imageItem){
Imageimage=null;
try{
image=Image.createImage("/pic2.png");
}catch(IOExceptione){
e.printStackTrace();
}
imageItem.setImage(image);
}
}
2009本次课最新的程序见:
2009list-jump-textbox-form-item
2010年新做代码见:
F:
\liyi10-11
(1)\教学\高级语言程序设计B(j2me)-李祎\上课过程\2010-2011\4.高级2-Alert,TextBox,Form及跳转\ImageItemChangeMIDlet.java
本题如果还有时间的话,给大家现场做一次整个的过程。
要注意:
流程是:
1常规元素的描述先写:
屏,屏显(子项),显屏
2交互动作:
说明接口,侦听,交互
结论:
改变小元素的内容要调整第二项I的内容。
上机内容:
见课件
本次课的板书(2009)
黑板分左右两边,
左边:
代码(新内容不断调整代码)|右边:
三个屏显
右边内容:
1Alert
构造函数
2TextBox
界面
分析
代码
3Form
(1)构造函数
(2)小元
●种类
●构造函数
StringItem构造函数(名,值,样式)
ImageItem构造函数(文字,图片,布局,代替图片文字,样式)
举例:
ImageItemimageItem=newImageItem("图片1",image,Item.LAYOUT_CENTER,"图片1代替文字",Item.BUTTON);
构造了小元素之后,要记住把小元素放到form上,即小元素添加到Form上(append)
(4)小元素的侦听
三要素:
接口,侦听,动作
本次课的板书(2010)
复习
引入课题—高级用户界面之二(ALERTFORM等)
教学目标
教学过程
一Alert类
1作用
2构造函数:
privateAlertalert;
alert=newAlert("alert","content",null,AlertType.CONFIRMATION);
分别是标题,内容,图片,类型(有5种类型,主要是声音不同)
3使用方法:
alert.setTimeout(3000);或者alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert);
4举例:
在上一课的程序的基础上,对交互动作进行修改。
(在原来的代码基础上增加alert的现场演示)
问题:
如何跳到另外一个TextBox屏显并返回回来呢?
二屏显的转换
1要求功能(多媒体演示一下要求实现的功能)
2分析
3类图(多媒体演示一下要求实现的功能)
4主要代码
三Form
1特点
2构造函数:
Form(String title)
重要方法:
添加小元素:
append(Item item)
3小元素
(1)种类
(2)StringItem
构造函数:
StringItem(标记,值,小元素的风格)
例如我们添加一个字符串项目StringItem
privateStringItemstringitem;
stringitem=newStringItem("name:
","liyi",Item.HYPERLINK);//
其中第一个是标记,第二个是值,第三个是子项的呈现方式
form.append(stringitem);
(3)侦听小元素:
三步曲
四.案例:
图片的切换
1功能要求(多媒体演示一下要求实现的功能)
2分析
3类图结构(多媒体演示一下要求实现的功能)
4核心代码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 AlertTextBoxForm 跳转