构造函数的问题吗
时间:2008-07-25 05:42:35
来源:论坛整理 作者: 编辑:chinaitzhe
错误提示如下:
Running with storage root SonyEricsson_W700_Emu
Running with locale: Chinese_People's Republic of China.936
java.io.IOException
at javax.microedition.lcdui.ImmutableImage.getImageFromStream( 15)
at javax.microedition.lcdui.ImmutableImage. <init>( 20)
at javax.microedition.lcdui.Image.createImage( 8)
at VectorPackage.MoveCanvas. <init>( 60)
at VectorPackage.VectorCanvas.startApp( 12)
at javax.microedition.midlet.MIDletProxy.startApp( 7)
at com.sun.midp.midlet.Scheduler.schedule( 270)
at com.sun.midp.main.Main.runLocalClass( 28)
at com.sun.midp.main.Main.main( 80)
MoveCanvas Constructor () end //构造函数测试,所以错误在构造函数之前发生,可是怎么错了呢?
MoveCanvas start() start
MoveCanvas run() start
Uncaught exception java/lang/NullPointerException: .
drawScreen() start
代码如下:
package VectorPackage;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
class MoveCanvas extends GameCanvas implements Runnable{
private Image backGround;
private Image emeryPlane;
private float PlanecurrentX;
private float PlanecurrentY;
private float startX;
private float startY;
private int width;
private int height;
private boolean isPlay;
private int delay;
private int Radius;
public MoveCanvas(int setX,int setY,int setRadius){
super(true);
width = getWidth();
height = getHeight();
delay = 50;
PlanecurrentX = startX = setX;
PlanecurrentY = startY = setY;
Radius = setRadius;
try{
backGround = Image.createImage("/background.png");
emeryPlane = Image.createImage("/plane.png");
}catch(Exception e){
e.printStackTrace();
}
setFullScreenMode(true);
System.out.println("MoveCanvas Constructor () end");
}
public void start(){
System.out.println("MoveCanvas start() start");
isPlay = true;
new Thread(this).start();
}
public void stop(){
isPlay = false;
}
public void run(){
System.out.println("MoveCanvas run() start");
Graphics g = getGraphics();
while(isPlay){
drawScreen(g);
try{
Thread.sleep(delay);
}catch(Exception e){
e.printStackTrace();
}
}
}
public void drawScreen(Graphics g){
System.out.println("drawScreen() start");
g.drawImage(backGround,0,0,Graphics.LEFT ¦Graphics.TOP);
ArcMove();
g.drawImage(emeryPlane,(int)PlanecurrentX,(int)PlanecurrentY,Graphics.LEFT ¦Graphics.TOP);
flushGraphics();
}
//弧形轨迹:
private void ArcMove(){
float currentValue;
PlanecurrentY = 1;
//Emersne01;
if(PlanecurrentY <= Radius startY)
{
currentValue = Radius*Radius - (PlanecurrentY - startY)*(PlanecurrentY - startY);
PlanecurrentX =((float)Math.sqrt(currentValue) startX );
}else {
PlanecurrentX = startX;
PlanecurrentY = startY;
}
}
}
package VectorPackage;
import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class VectorCanvas extends MIDlet {
public VectorCanvas() {
// TODO Auto-generated constructor stub
super();
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
MoveCanvas mc = new MoveCanvas(60,0,60);//圆心在(60,0)处,半径为60;
mc.start();
Display.getDisplay(this).setCurrent(mc);
}
}
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主【sodino】截止到2008-07-23 21:59:46的历史汇总数据(不包括此帖):
发帖的总数量:33 发帖的总分数:590 每贴平均分数:17
回帖的总数量:13 得分贴总数量:2 回帖的得分率:15%
结贴的总数量:30 结贴的总分数:530
无满足结贴数:9 无满足结贴分:180
未结的帖子数:3 未结的总分数:60
结贴的百分比:90.91 % 结分的百分比:89.83 %
无满足结贴率:30.00 % 无满足结分率:33.96 %
值得尊敬网友回复:应该是图片加载的问题,检查一下有没有这两个图片,位置对不对
网友回复:
关键字:构造,函数,问题,
上一篇:jAVA环境变量
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面