您的位置:首页 > 编程语言

本来刚学j2me手机编程,遇到一个问题,可能比较浅,请不吝赐教!

2017-01-03 01:34 429 查看
我用的书是人民邮电出版社的《j2me手机游戏编程入门》,我用J2ME Wireless Toolkit 2.0_01来开发运行。当我在尝试这本书的一个例子的时候,遇到你个问题,心中也有困惑,请各位指教。

附一,SkeletonMIDlet.java(该程序在c:\wtk20\apps\Skeleton\src目录下)

import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;

public class SkeletonMIDlet extends MIDlet implements CommandListener{

private SCanvas canvas;

public void startApp(){

   if(canvas==null){

    canvas=new SCanvas(Display.getDisplay(this));

    Command exitCommand=new Command("Exit",Command.EXIT,0);

    canvas.setCommandListener(this);

   

    }

   

  //start canvas;

  canvas.start();

  

}

   public void pauseApp(){

      }

     

   public void destroyApp(boolean unconditional){

       }

   

   public void commandAction(Command c,Displayable s){

   

    if (c.getCommandType()==Command.EXIT){

    destroyApp(true);

    notifyDestroyed();

        }

      }

}

//==========================================================================

附二,Scanvas.java (该文件位置如上)

import java.lang.String;

import javax.microedition.lcdui.*;

import javax.microedition.lcdui.Graphics.*;

public class SCanvas extends Canvas{

private Display display;

public SCanvas(Display d){

super();

display=d;

}

void start(){

display.setCurrent(this);

repaint();

}

public void paint(Graphics g){

//清理画布

g.setColor(0,0,0);

g.fillRect(0,0,getWidth(),getHeight());

g.setColor(255,255,255);//white

//绘制可用屏幕尺寸

    int y=0;

    String screenSize="Screen size: "+Integer.toString(getWidth())+" * " +Integer.toString(getHeight());

    g.drawString(screenSize,0,y,Graphics.TOP|Graphics.LEFT);

//绘制可用颜色数

    

    y+=Font.getDefaultFont().getHeight();

    String numColors="# of colors: " +Integer.toString(display.numColors());

    g.drawString(numColors,0,y,Graphics.TOP|Graphics.LEFT);

    

    

 //绘制可用的透明度设置  

    

    y+=Font.getDefaultFont().getHeight();

    String numAlphas="# of alphas: " +Integer.toString(display.numAlphaLevels());

    g.drawString(numAlphas,0,y,Graphics.TOP|Graphics.LEFT);

    

 //绘制总内存和可用内存大小

    

    Runtime runtime=Runtime.getRuntime();

    y+=Font.getDefaultFont().getHeight();

    String totalMem="Total memory: " +Long.toString(runtime.totalMemory()/1024) +"KB";

    g.drawString(totalMem ,0,y,Graphics.TOP|Graphics.LEFT);

    

    y+=Font.getDefaultFont().getHeight();

    String freeMem="Free memory: " +Long.toString(runtime.freeMemory()/1024 ) +"KB" ;

    g.drawString(freeMem,0,y,Graphics.TOP|Graphics.LEFT);

    

}

}

我写好源代码,并且在bin目录下写好Skeleton.jad,我在用ktoolbar打开一个项目,然后编译,出现这个错误:

//=============

Project "Skeleton" loaded

Project settings saved

Building "Skeleton"

C:\WTK20\apps\Skeleton\src\SCanvas.java:30: cannot access java.lang.StringBuilder

file java\lang\StringBuilder.class not found

    String screenSize="Screen size: "+Integer.toString(getWidth())+" * " +Integer.toString(getHeight());

                                                                                 ^

Fatal Error: Unable to find method <init>

com.sun.kvem.ktools.ExecutionException

Build failed

请问,这是为何,我的上面两个java源程序用jcreator编辑,并且在那个环境下编译通过;上面的提示是什么原因呢?

还有,书上说j2me源程序从一个手机移植到另一个手机的工作量很小,我现在不知道具体要做些什么??

谢谢。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐