兰色精灵 发表于 2015-1-18 11:15:16

JAVA网站制作之J2ME中利用缓存将屏幕内容存储为Image

为什么外国人还要写那些框架进行代码封装,他们不就是为了别人使用时可以更简单么!如果要达到一个企业级项目的不用框架是很难的。小一些的项目还行,大的光是MVC模式的设计的编码量就够大的了。还有性能方面,单轮windows,这个工具是微软写的,。缓存  本文先容怎样将手机屏幕的内容存储为Image对象,这里以为手机屏幕上显现的是一个Canvas。完成这一个功效的头脑就是利用缓冲机制。我们不克不及间接取得Canvas上的像素,因而不克不及间接从Canvas上的内容取得Image对象。转换一下思绪,假如把要绘制的Canvas上的内容起首绘制到一个Image上,而这个Image其实不显现到屏幕上,只是在绘画完成后一次性的显现到屏幕上。有履历的伴侣必定遐想到了双缓冲机制,不外这里并非要利用双缓冲办理闪屏的成绩,而是要失掉以后Canvas的内容。

  上面我们编写一个复杂的Canvas类来测试一下这个设法,SimpleCanvas是Canvas的子类,为了保留Canvas的内容,我们创立一个Image,巨细与Canvas的尺寸相称。

classSimpleCanvasextendsCanvas{

 intw;
 inth;
 privateImageoffImage=null;
 privatebooleanbuffered=true;
 publicSimpleCanvas(boolean_buffered){
  buffered=_buffered;
  w=getWidth();
  h=getHeight();
  if(buffered)
  offImage=Image.createImage(w,h);
 }
 protectedvoidpaint(Graphicsg){

  intcolor=g.getColor();
  g.setColor(0xFFFFFF);
  g.fillRect(0,0,w,h);
  g.setColor(color);

  Graphicssave=g;
  if(offImage!=null)
   g=offImage.getGraphics();
   //drawtheoffimage
   g.setColor(128,128,0);
   g.fillRoundRect((w-100)/2,(h-60)/2,100,60,5,3);
   //drawtheoffimagetothecanvas
   save.drawImage(offImage,0,0,Graphics.TOP|Graphics.LEFT);
 }

 publicImageprintMe(){
  returnoffImage;
 }

  能够看到paint()办法,并非间接对Canvas操纵,而是先把要画的内容绘制到一个Image上,然后再绘制到Canvas上。如许到你想抓取屏幕内容的时分就能够挪用printMe()办法了,前往offImage。编写一个MIDlet测试一下这个效果。

packagecom.j2medev;

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

/**
*
*@authormingjava
*@version
*/
publicclassPrintScreenextendsMIDletimplementsCommandListener{

 privateDisplaydisplay=null;
 privateSimpleCanvascanvas=newSimpleCanvas(true);
 privateCommandprintCommand=newCommand("Print",Command.OK,1);

 publicvoidstartApp(){
  if(display==null)
   display=Display.getDisplay(this);
  canvas.addCommand(printCommand);
  canvas.setCommandListener(this);
  display.setCurrent(canvas);
 }

 publicvoidpauseApp(){}

 publicvoiddestroyApp(booleanunconditional){}

 publicvoidcommandAction(Commandcommand,Displayabledisplayable){
  if(command==printCommand){
   Formform=newForm("screen");
   form.append(canvas.printMe());
   display.setCurrent(form);
  }
 }
}
  运转PrintScreen,选择Print,便可把以后的屏幕显现到一个Form中。以下图所示:



C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作,

海妖 发表于 2015-1-20 18:33:53

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。

谁可相欹 发表于 2015-1-21 07:46:17

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

仓酷云 发表于 2015-1-21 20:00:44

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

再现理想 发表于 2015-1-25 08:49:13

另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。

小女巫 发表于 2015-1-31 15:42:54

Java 编程语言的风格十分接近C、C++语言。

透明 发表于 2015-2-2 07:25:44

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

柔情似水 发表于 2015-2-2 20:10:29

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

不帅 发表于 2015-2-6 15:55:05

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

第二个灵魂 发表于 2015-2-6 16:50:57

象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。

山那边是海 发表于 2015-2-17 09:47:15

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

飘灵儿 发表于 2015-3-10 23:54:49

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

若相依 发表于 2015-3-17 16:10:34

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

老尸 发表于 2015-3-24 11:32:37

Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
页: [1]
查看完整版本: JAVA网站制作之J2ME中利用缓存将屏幕内容存储为Image