关闭

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

27人阅读 评论(0) 收藏 举报
我用的书是人民邮电出版社的《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源程序从一个手机移植到另一个手机的工作量很小,我现在不知道具体要做些什么??

谢谢。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1577次
    • 积分:176
    • 等级:
    • 排名:千里之外
    • 原创:17篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档