爱飞 发表于 2015-1-18 11:36:00

JAVA编程:J2ME进修条记(九)

Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)条记九

MIDP初级图形处置


MIDP所供应的图形处置办法都在javax.microedition.lcdui内里。次要是以下几个类:Display,Graphic

s,Canvas,Font,Image。
1、Display:
在每一个MIDlet当中是由一个Display,属于用Singleton

Pattern所封装起来的种别,必要利用getDisplay来获得。当利用setCurrent()办法,并同时将一个Dis

playable的子类作为参数就能够在屏幕上显现相干的画面。也可一用getCurrent()猎取以后正在感化的

Displayable的对象。同时为了获得屏幕相干的属性可使用isColor()前往屏幕是不是为黑色,numColors(

)前往屏幕所撑持的黑色数,假如前往值为2则为口角两色。每当Display的setCurrent办法失掉Canvas子

类作为参数的时分,MIDP体系会实行paint办法并将Graphics对象看成参数。内里有一点必要注重,因为

手持设备的屏幕巨细并非流动的,以是我们在添补背景致,远景色的时分有需要经由过程getWidth(),getHe

ight()两个办法获得屏幕的长、宽。
2、Image:
处置图形的时分会利用到Image类,依据Image类的发生体例能够分为可修正和不成修正的两个方面。

能够经由过程isMutable办法失掉此Image类是不是能够修正。还能够经由过程getWidth(),getHeight()办法获得Imag

e对象的长,宽。
能够经由过程读取图象文件,收集下载,resourcebundle等体例创立一个不成修正的image对象。一旦创

建不成修正image对象,那末这个图象的内容将不成再次变动。

packagecom.graph;

/**
*@authorYouLi
*
*CopyRight(C)2005*/
importjavax.microedition.midlet.*;
importjavax.microedition.lcdui.*;

publicclassImageExextendsMIDletimplementsCommandListener{

privateCommandcmdExit;
privateImageCanvascanvas;

publicImageEx(){
cmdExit=newCommand("Exit",Command.SCREEN,2);
canvas=newImageCanvas();
//TODO主动天生机关函数存根
}

protectedvoidstartApp()throwsMIDletStateChangeException{
//TODO主动天生办法存根
canvas.addCommand(cmdExit);
canvas.setCommandListener(this);
Display.getDisplay(this).setCurrent(canvas);
}

protectedvoidpauseApp(){
//TODO主动天生办法存根

}

protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{
//TODO主动天生办法存根

}

publicvoidcommandAction(Commandcommand,Displayablescreen){
if(command==cmdExit){
notifyDestroyed();
}
}

}

packagecom.graph;

/**
*@authorYouLi
*
*CopyRight(C)2005*/
importjavax.microedition.lcdui.*;

publicclassImageCanvasextendsCanvas{

publicvoidpaint(Graphicsg){
try{
Imageimage=Image.createImage("/JavaPowered-2.png");
g.drawImage(image,0,0,Graphics.TOP|Graphics.LEFT);
}catch(Exceptione){
e.printStackTrace();
}
}

}

创建如上两个类,然后运转程序就能够看到图片显现在摹拟器的屏幕上了。例子中我们用createImage

读取一个存在的图片来创建一个不成变动的Image对象。另有别的两个机关函数也是用来创建不异的image

对象,一个是createImage(byte[]imagedata,intimageoffset,int

imageLength),另有一个就是createImage(Imagesource)。
固然,假如我们要构建一个能够修正的image对象那末可使用机关函数createImage(intwidth,int

height)。由于一个可修正的image对象实践就是可否在背景绘图的offscree,以是在创建一个能够修正

的image对象之前应当利用Canvas的isDoubleBuffered()办法断定设备是不是撑持此办法。

font字体

Font.getDefaultFont()--失掉体系默许的字体。
Font.getFont()--失掉以后所利用的字体。(getFace()『isBold();isItalic();isPlain();
isUnderlined()』,getStyle(),getSize())
Font.setFont()--设置字体
关于font一共有三个参数:
face:Graphics.FACE_MONOSPACE;Graphics.FACE_PROPORTIONAL;Graphics.FACE_SYSTEM
style:Graphics.STYLE_BOLD;Graphics.STYLE_ITALIC;Graphics.STYLE_PLAIN;
Graphics.STYLE_UNDERLINED
size:Graphics.SIZE_LARGE;Graphics.SIZE_MEDIUM;Graphics.SIZE_SMALL

关于font的几个主要的办法:
getBaseLinePosition();getHeight();charWidth();charsWidth();stringWidth();
substringWidth()

定位点:

定位点界说了7个屏幕点:Graphics.TOP;Graphics.BOTTOM;Graphics.LEFT;Graphics.RIGHT;
Graphics.HCENTER;Graphics.VCENTER;Graphics.BASELINE。

3、Graphics

获得Graphics对象有两个办法,用paint()办法传进参数,还能够用Image类的getGraphics办法来失掉Graphics对象。二者区分在于paint办法失掉的Graphics对象我们能够使用相干办法在屏幕上画图,而使用getGraphics办法失掉的Graphics对象对任何呼唤不起感化。
绘图的时分我们在图形相干办法中利用的坐标不是代表象素自己,而是指象素与象素之间空格所组成的坐标!这个和我们传统的笛卡儿坐标的观点有些往表,并且是以屏幕左上方为0,0坐标。
Graphics对象的setColor(intred,intgreen,intblue)办法用来设置象素的色彩。getGrayScale()获得今朝所用的灰度,setGrayScale()则是用来设置灰度。MIDP中没有供应设置远景色背景致的办法,以是必需经由过程添补来处置。
笔墨和图形
笔墨利用drawChar(),drawChars(),drawString()
图形利用drawImage()
绘图和画面添补
线:drawLine(),有4个参数,分离输出x,y出发点右边,x,y尽头坐标
弧形:drawArc(),6个参数,前4个暗示弧形地点的矩形局限的坐标,第五个决意肇端角度,第六个决意弧形所涵盖第角度。
矩形:drawRect(),4个参数,x、y出发点坐标,宽,长
园角矩形:drawRoundRect()6个参数,前4个暗示弧形地点的矩形局限的坐标,第五个是园角所在矩形第宽度,第六个暗示矩形的高度。
添补弧形:fillArc(),6个参数,前四个决意弧形地点矩形的局限,第五个决意肇端角度,第六个决意弧形所涵盖的角度
添补矩形:fillRect(),4个参数,x、y出发点坐标,宽,长
添补园角矩形:fillRoundRect(),6个参数,前4个暗示弧形地点的矩形局限的坐标,第五个是园角地点矩形第宽度,第六个暗示矩形的高度。




用java开发web只要两本书:一本是关于java基础的,一本是关于jsp、servlet的就可以了。开发周期长,我就来讲句题外话,现在有很多思想都是通过java来展现。

仓酷云 发表于 2015-1-21 10:44:29

是一种为 Internet发展的计算机语言

柔情似水 发表于 2015-1-30 15:47:36

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

再见西城 发表于 2015-2-4 20:07:59

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

飘飘悠悠 发表于 2015-2-10 05:54:38

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

深爱那片海 发表于 2015-2-19 05:46:46

是一种突破用户端机器环境和CPU

透明 发表于 2015-3-6 23:48:47

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

分手快乐 发表于 2015-3-13 22:46:07

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。

蒙在股里 发表于 2015-3-15 20:32:51

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

简单生活 发表于 2015-3-17 12:35:58

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

若天明 发表于 2015-3-24 10:06:14

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

不帅 发表于 2015-4-17 09:19:42

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

金色的骷髅 发表于 2015-4-24 06:47:24

是一种将安全性(Security)列为第一优先考虑的语言

若相依 发表于 2015-4-28 05:30:37

Java是一种计算机编程语言,拥有跨平台、面向对java

因胸联盟 发表于 2015-5-1 20:53:56

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

灵魂腐蚀 发表于 2015-6-10 07:38:54

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

愤怒的大鸟 发表于 2015-6-12 06:55:23

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

山那边是海 发表于 2015-6-22 04:59:41

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

再现理想 发表于 2015-6-26 03:03:51

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

乐观 发表于 2015-7-3 01:06:15

自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
页: [1]
查看完整版本: JAVA编程:J2ME进修条记(九)