<script>function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}</script>
本文来自:http://blog.csdn.net/hellogv/ ,转载必须注明出处!
首先先给出本例的效果图:

首先,需要说明一下LWUIT的控件:
LWUIT的控件,可以算是做得很全,他的设计模式跟J2SE有点类似,而做过J2ME的人要掌握也不需要长时间。LWUIT的控件,是原来高级控件与低级控件的集合,并加入了更多元素,因此你可以在用高级控件的同时,很自然地实现低级控件的功能。例如本文中的绘图功能,就是如此!
在本例中,依然使用大家熟悉的void paint(Graphics g)
函数,作为绘图的主体,然而paint的“上司”(绘图类)并不再是继承Canvas,而是继承Component,并且继承Component之后要这
样被调用:form.addComponent(BorderLayout.CENTER, new Painting());//Painting就是“上司”。可见,在LWUIT里,已经没低级控件这个概念,但是有这个用法-----传统的绘图类也作为控件类,被调用了。或许,你想用回原来的javax.microedition.lcdui.Graphics,但是lcdui的Graphics和Display 与 LWUIT的Graphics和Display不兼容(LWUIT多了很多方法),因此“新欢旧爱不能兼得”!
OK,先给出调用绘图功能的代码:
-
privateclassButtonActionListenerimplementsActionListener{
-
publicvoidactionPerformed(ActionEventevt){
-
Stringsel_button=((Button)(evt.getSource())).getText();
-
if(sel_button.equals("Image1"))
-
newAnimationDemo().form.show();
-
elseif(sel_button.equals("Image2"))
-
newPaintingDemo().form.show();
- }
- }
接着再给出绘图功能实现的代码:
-
-
packagecom.sun.lwuit.uidemo;
-
-
importcom.sun.lwuit.Command;
-
importcom.sun.lwuit.Component;
-
importcom.sun.lwuit.Form;
-
importcom.sun.lwuit.Graphics;
-
importcom.sun.lwuit.events.ActionEvent;
-
importcom.sun.lwuit.events.ActionListener;
-
importcom.sun.lwuit.layouts.BorderLayout;
-
-
-
-
-
publicclassPaintingDemoextendsFormimplementsActionListener{
-
publicFormform=newForm("PaintingDemo");
-
privateCommandbackCommand=newCommand("Back",1);
-
privateCommandnextCommand=newCommand("next",2);
- PaintingDemo()
- {
- form.addCommand(backCommand);
- form.addCommand(nextCommand);
-
form.setCommandListener(this);
-
form.setLayout(newBorderLayout());
-
form.addComponent(BorderLayout.CENTER,newPainting());
-
- }
-
publicclassPaintingextendsComponent{
-
privateintw;
-
publicvoidpaint(Graphicsg){
-
g.setColor(0x000000);
-
g.fillRect(0,0,this.getWidth(),this.getHeight());
- w=getWidth();
- drawSqrt1(g);
-
g.setColor(0xffffff);
-
g.drawString("hellogv",12,33);
-
- }
-
privatevoiddrawSqrt1(Graphicsg){
-
longstart=System.currentTimeMillis();
-
-
intcenterY1=50;
-
-
-
-
g.setColor(0x0000FF);
-
g.drawLine(0,centerY1,w,centerY1);
-
-
-
g.setColor(0xFFFFFF);
-
intoldX=0;
-
intoldY1=centerY1;
-
-
inty1;
-
for(inti=1;i<w;i++){
-
-
y1=centerY1-(int)(3*Math.sqrt(i));
- g.drawLine(oldX,oldY1,i,y1);
- oldX=i;
- oldY1=y1;
- }
-
longtime=System.currentTimeMillis()-start;
-
System.out.println("drawSqrt1Runtime:"+time);
- }
-
- }
-
publicvoidactionPerformed(ActionEventarg0){
-
if(arg0.getCommand()==backCommand)
- {
- UIDemoMIDlet.backToMainMenu();
- }
-
elseif(arg0.getCommand()==nextCommand)
- {
- }
- }
- }
OK,还是那句,希望大家多多支持LWUIT,让它可以做得更加好!
分享到:
相关推荐
为了进行J2ME开发,我们需要安装支持J2ME的插件,如MOTODEV Studio或NetBeans,这些插件提供了J2ME项目创建、模拟器运行和调试等功能。 1. **项目创建**:在Eclipse中创建J2ME项目,选择合适的手机配置文件(如CLDC...
2. **图形用户界面(GUI)**:J2ME中的用户界面设计通常基于轻量级用户界面(LWUIT)或早期的WTK( Wireless Toolkit)组件。源代码可能包含各种按钮、文本框、列表等组件的使用示例,以及布局管理器的实现。 3. **...
而框架则是在特定配置之上添加更具体的设备功能,如MIDP(Mobile Information Device Profile)用于移动设备应用开发。 **二、KJava与J2ME** KJava是早期的J2ME实现,它直接运行在设备的硬件层上。随着MIDP的发展...
Java基于J2ME的手机游戏开发是一个广泛的领域,涉及到移动设备上的软件开发技术,特别是针对早期功能手机的游戏创作。J2ME(Java 2 Micro Edition)是Java平台的一个子集,专门为资源有限的嵌入式设备如手机和PDA...
J2ME游戏开发通常涉及使用MIDP的Canvas类来创建自定义绘图,以及使用LWUIT(Lightweight UI Toolkit)或MIDP GUI组件来构建交互界面。游戏逻辑可能需要利用线程管理和事件处理。对于更复杂的游戏,可能还需要使用...