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来展现。 是一种为 Internet发展的计算机语言 我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。 Java 编程语言的风格十分接近C、C++语言。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种突破用户端机器环境和CPU 接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 是一种将安全性(Security)列为第一优先考虑的语言 Java是一种计算机编程语言,拥有跨平台、面向对java Java 编程语言的风格十分接近C、C++语言。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
页:
[1]