仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 535|回复: 9
打印 上一主题 下一主题

[学习教程] JAVA网页设计经由过程实例论证J2ME的事务传输机制

[复制链接]
简单生活 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:08:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
还有就是总有人问我到底该学习什么语言,什么语言有前途,那么我的回答是不论是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来展现。
活着的死人 该用户已被删除
沙发
发表于 2015-1-18 18:47:12 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
愤怒的大鸟 该用户已被删除
板凳
发表于 2015-1-22 21:49:29 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
只想知道 该用户已被删除
地板
发表于 2015-1-25 09:56:24 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
小魔女 该用户已被删除
5#
发表于 2015-1-26 13:45:48 | 只看该作者
是一种突破用户端机器环境和CPU
莫相离 该用户已被删除
6#
发表于 2015-2-6 17:40:43 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
金色的骷髅 该用户已被删除
7#
发表于 2015-2-17 18:43:34 | 只看该作者
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
小女巫 该用户已被删除
8#
发表于 2015-3-5 21:50:38 | 只看该作者
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-12 15:36:03 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
谁可相欹 该用户已被删除
10#
发表于 2015-3-19 23:27:46 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:43

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表