仓酷云

标题: JAVA编程:J2ME进修条记(1)--完成手机屏幕的切换 [打印本页]

作者: 乐观    时间: 2015-1-18 11:36
标题: JAVA编程:J2ME进修条记(1)--完成手机屏幕的切换
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。条记在编写手机程序时,常常要举行各个屏幕间的切换。一入手下手不晓得怎样往做,这两天看了一个例子,很复杂,但很能申明成绩。总结一下。若有不当以外,请妙手改正!
功效:在主程序中有多个按钮,每个按钮对应一个功效,每个功效要分歧的屏幕(元素)体现出来。
完成:
1、主程序中一定界说了一个Display对像,如privateDisplaydisplay,它暗示以后的屏幕。另有一些Displayable对像。如Form,TextField等都是Displayable的子类。在主程序中经由过程dipslay.serCurrent(Displayable实例名);便可将当Displayable实例到场以后的屏幕。以下程序:
privateDisplaydisplay;
privateFormform=newForm(“一个Form“);
publicvoidstartApp()
{
display.setCurrent(form);
}
感化是将form增加到以后的屏幕傍边。
2、要想举行屏幕间的切换,只需将你想显现的东东放到到主程序的display对象中便可。主程序中界说了一个display,则要在另外一个屏幕(我临时把它称之为方针屏幕)中援用到主程序的display。

开辟情况:Win2000server+Eclipse+WTK2.1

用以下代码申明:

MainMIDlet.java:主程序,一个尺度的MIDlet。

importjavax.microedition.midlet.MIDlet;
importjavax.microedition.lcdui.*;

publicclassMainMIDletextendsMIDletimplementsCommandListener{

privateDisplaydisplay;
privateFormform=newForm("Wellcome!!");
privateCommandokCommand=newCommand("OK",Command.OK,1);//选择OK,换到下一个屏幕
privateFormns;
privateStringItemsi=newStringItem("FirstScreen","~_~");
publicMainMIDlet()
{
form.addCommand(okCommand);
form.append(si);
}
publicvoidstartApp(){
display=Display.getDisplay(this);

display.setCurrent(form);
form.setCommandListener(this);//对form到场CommandListener

}
publicvoidpauseApp(){

}
publicvoiddestroyApp(booleanb){

}
publicvoidcommandAction(Commandc,Displayables)
{
if(c==okCommand)
{
ns=newNextScreen(display,form);//最关头的中央在这里:)
display.setCurrent(ns);
}

}

}
在这个MIDlet中,界说了一个Display对像display。
和一个两个Displayable对象Formform及StringItemsi。运转后显现在屏幕傍边。
另有个一CommandokCommand,其感化是触发下一个屏幕。
在publicvoidcommandListener中能够看到,铛铛前按下的按钮是okCommand时,初始化一个NextScreen对象
ns=newNextScreen(display,form);
将display和form传进,感化就是举行屏幕的切换。
上面是NextScreen的完成:
NextScreen.java第二个屏幕的代码
importjavax.microedition.lcdui.*;
publicclassNextScreenextendsFormimplementsCommandListener{

privateDisplaydisplay;
privateDisplayableparent;
privateCommandbackCommand=newCommand("BACK",Command.BACK,1);
privateStringItemsi=newStringItem("SecondScrean","~_~");
publicNextScreen(Displayd,Displayablep)
{
super("nextscreen");
display=d;
parent=p;
append(si);
addCommand(backCommand);
setCommandListener(this);

}
publicvoidcommandAction(Commandc,Displayables)
{
//前往上一个屏幕
if(c==backCommand)
{
display.setCurrent(parent);
}
}

}
它承继自Form类。
在NextScreen中又界说了一个Displaydisplay,将用它来标识以后的元素显现在哪个屏幕中。
一个Formform,一个StringItemsi。这是以后屏幕中要显现的东东:)
机关函数中的super("secondscreen");的感化是使得NextScreen能够间接调中其父类Form中的函数。
backCommand的感化是前往上一个屏幕。
将form,si及backCommand到场NextScreen中,一个NextScreen的实例就完成了。在主程序(MainMIDlet)中,就是ns。

接上去,最关头的中央,就是在MainMIDlet中的这一句:display.setCurrent(ns);
就是把ns在以后的屏幕中显现出来!如许就能够看到NextScreen中界说的各个元素(form,si)了!

然后想前往原屏幕,怎样办呢?这时候NextScreen中的backCommand就起感化了。
细心看这两句:
在MainMIDlet.java中:
ns=newNextScreen(display,form);
它将form也传了出来。它有甚么用呢?
在NextScreen的机关函数中:
dispaly=d;
这一句实在即是:NextScreen.display=MainMIDlet.display;
如许,NextScreen就失掉了以后的屏幕,它就随便的在下面放东东了。
parent=p;
这一句实在即是:NextScreen.parent=MainMIDlet.form;
从字面意义不难了解,本来是把主程序的form当做parent(怙恃),如许就失掉以后屏幕的前一个屏幕中所显现的内容!!
然后在commandAction中,假如backCommand按下了,则实行display.serCurrent(parent);如许,又把本来的屏幕给show出来了:)


认真的记,感觉很紧张根本就没有时间和能力,来对技术知识点进行思考。这样课下就只能对知识进行简单的理解,其实简单的理解就是记忆课堂上讲的知识点,
作者: 小女巫    时间: 2015-1-21 10:47
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 若天明    时间: 2015-1-30 15:53
是一种突破用户端机器环境和CPU
作者: 因胸联盟    时间: 2015-2-5 14:07
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 小魔女    时间: 2015-2-12 02:40
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
作者: 蒙在股里    时间: 2015-2-22 20:08
所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
作者: 精灵巫婆    时间: 2015-3-7 01:33
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 活着的死人    时间: 2015-3-11 14:45
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
作者: 透明    时间: 2015-3-15 00:31
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: admin    时间: 2015-3-18 19:56
是一种使用者不需花费很多时间学习的语言
作者: 飘灵儿    时间: 2015-3-25 04:18
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: 海妖    时间: 2015-3-26 15:03
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 兰色精灵    时间: 2015-3-27 12:07
是一种突破用户端机器环境和CPU
作者: 金色的骷髅    时间: 2015-4-3 04:22
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 变相怪杰    时间: 2015-4-6 23:08
是一种语言,用以产生「小应用程序(Applet(s))
作者: 深爱那片海    时间: 2015-4-15 05:42
是一种使网页(Web Page)产生生动活泼画面的语言
作者: 不帅    时间: 2015-4-16 14:47
是一种将安全性(Security)列为第一优先考虑的语言
作者: 山那边是海    时间: 2015-4-21 15:53
是一种为 Internet发展的计算机语言
作者: 老尸    时间: 2015-5-5 08:23
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2