本来刚学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源程序从一个手机移植到另一个手机的工作量很小,我现在不知道具体要做些什么??
谢谢。
附一,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源程序从一个手机移植到另一个手机的工作量很小,我现在不知道具体要做些什么??
谢谢。
相关文章推荐
- 本来刚学j2me手机编程,遇到一个问题,可能比较浅,请不吝赐教!
- 今天遇到的一个比较变态的问题
- Delphi的MDI编程中遇到的一个奇怪问题
- 百分求解一个可能涉及比较多的一个有关问题,求熟悉javascript或者ASP无组件上传或者AJAX等等的高手帮忙解答,非常感谢!
- 记录下遇到的一个比较坑爹的问题
- sql 根据一个表更新 另一个表的例子及可能遇到的问题
- 今天在处理GridView分页问题时遇到了一个比较常见的分页出错问题。
- 今天装完ASM时遇到的一个比较低级的问题ORA-15149: another ASM instance found running on the host
- 2530程序用IAR新版本编译旧版本程序可能遇到的一个问题
- shell脚本中字符串比较经常遇到的一个问题
- 手机自动化测试(5)--Appium环境搭建、可能遇到的问题以及附属工具
- hql执行update行为时可能遇到的一个问题。
- 初学MVC遇到的问题:HTTP 404 您正在查找的资源(或者它的一个依赖项)可能已被移除
- 今天遇到一个问题:在程序中加入的定时触发器,当时出现这样一个问题,触发器定时2秒,程序从后台查询数据经过复杂处理后时间超过了2秒,我查阅好些网络上说有可能触发器等待程序执行完毕后,在触发下一次,也有说
- hql执行update行为时可能遇到的一个问题。
- 通过SVN导入两个项目(从java移植到andorid)时,一个android,一个普通java项目时可能遇到的两个问题
- 剪切板编程中遇到的一个问题
- 同一个页面同时拥有collectionView和navigationBar和tabBar时可能遇到的问题
- 苹果p12文件--一个苹果证书怎么多次使用(蛋疼,这些问题只有和其他企业合作才会遇到,别人的账号不可能给你,蛋疼....)