JAVA网页设计经由过程实例论证J2ME的事务传输机制
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是C,C++,java,.net,ruby,asp或是其他语言都可以学,编程的关键不是语言,而是思想。论证 本文次要论述的成绩是,在J2ME开辟中事务传输究竟是甚么机制。次要环绕Canvas类事务传输的串行化举行剖析和研讨,经由过程实例举行论证并在最初得出结论。经由过程参考Javadoc我们能够晓得在J2ME中的事务传输是串行化的,那末甚么是串行化呢?javadoc内里说当一个工夫办法挪用完成以后,上面的事务办法才会被挪用。如许能够包管用户的前次输出已被完成了,下次的事务输出才会失掉呼应。起首我们来看看那些办法是所谓的事务办法。在MIDP中列出了以下的办法:
showNotify()
hideNotify()
keyPressed()
keyRepeated()
keyReleased()
pointerPressed()
pointerDragged()
pointerReleased()
paint()
theCommandListenerscommandAction()method
我们针对上述串行化的了解不防做一下如许的假定,当showNotify()办法被挪用的时分,假如在外部界说了repaint()办法,则会哀求体系对屏幕举行从头的绘制,这会挪用到paint()办法。接上去我们完成keyPressed()办法,让它把按键的名字打印在屏幕上。为了摹拟串行化的效果,我们在每一个办法中都让以后的线程就寝2000ms,假如事务切实其实是串行化的机制,那末程序必定会断断续续的画出我们的按键名。为了论证我们的假想,我编写了上面的一段代码。
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;
publicclassKeyCodesextendsMIDlet
{
privateDisplaydisplay;
privateKeyCodeCanvascanvas;
publicKeyCodes()
{
display=Display.getDisplay(this);
canvas=newKeyCodeCanvas(this);
}
protectedvoidstartApp()
{
display.setCurrent(canvas);
}
protectedvoidpauseApp()
{
}
protectedvoiddestroyApp(booleanunconditional)
{
}
publicvoidexitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}
classKeyCodeCanvasextendsCanvasimplementsCommandListener
{
privateCommandcmExit;
privateStringkeyText="helloletsgo!";
privateKeyCodesmidlet;
publicKeyCodeCanvas(KeyCodesmidlet)
{
this.midlet=midlet;
cmExit=newCommand("Exit",Command.EXIT,1);
addCommand(cmExit);
setCommandListener(this);
}
protectedvoidpaint(Graphicsg)
{
System.out.println("Iaminvoked!");
g.setColor(0,255,0);
g.fillRect(0,0,getWidth(),getHeight());
if(keyText!=null)
{
g.setColor(0,0,0);
g.drawString(keyText,getWidth()/2,getHeight()/2,Graphics.TOP
|Graphics.HCENTER);
}
}
publicvoidshowNotify()
{
repaint();
try
{
Thread.sleep(2000);
}
catch(InterruptedExceptione)
{
}
}
publicvoidcommandAction(Commandc,Displayabled)
{
if(c==cmExit)
midlet.exitMIDlet();
}
protectedvoidkeyPressed(intkeyCode)
{
keyText=getKeyName(keyCode);
repaint();
try
{
Thread.sleep(2000);
}
catch(InterruptedExceptione)
{
}
}
}
编译,运转。我们看到当Canvas被显现在屏幕上的时分,showNotify()办法起首被挪用,它的repaint()办法被挪用后,并非屏幕即刻会被绘制。而是要等两秒的工夫,showNotify()办法前往后,paint()办法才入手下手实行。在这两秒的工夫,即便你按键屏幕一样不会从头绘制,相反你的按键事务会被缓存到一个行列,一个一个的被渐渐的绘制出来。上面是程序的截图,供参考
在Canvas类的javadoc中有一个备注申明了一些值得存眷的成绩,好比serviceRepaints()办法会强制任何挂起的绘画哀求立即被实行,showNotify()和hideNotify()办法利用的一些注重等,读者能够参考javadoc懂得进一步的内容。
用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 是一种突破用户端机器环境和CPU 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
页:
[1]