j2me 加载图片 100

importjavax.microedition.lcdui.Canvas;importjavax.microedition.lcdui.Graphics;importj... import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

import java.util.*;

public class canvas extends Canvas implements Runnable
{

public Image img[]=new Image[5];

public canvas()
{
try
{
img[0]=Image.createImage("/1.png");
img[1]=Image.createImage("/2.png");
img[2]=Image.createImage("/3.png");
img[3]=Image.createImage("/4.png");
img[4]=Image.createImage("/5.png");
}
catch(Exception e)
{

}

(new Thread(this)).start();
}
protected void paint(Graphics g)
{
g.drawImage(img[4],55,55,Graphics.BOTTOM|Graphics.TOP);
//pig.draw(g);

}

public void run()
{
// TODO 自动生成方法存根

while(true)
{

repaint();

try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}

}

绘制img[0],img[1],img[2],img[3]可以,为什么到第四个就出现nullpointerexception
展开
 我来答
fenyun1981
2009-05-22 · TA获得超过3232个赞
知道小有建树答主
回答量:995
采纳率:0%
帮助的人:748万
展开全部
import java.io.IOException;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class UseSprite extends GameCanvas implements Runnable {
boolean isPlay;
long delay;
int currentX, currentY;
int width;
int height;

Sprite sprite;
Sprite nonSprite;
public UseSprite() throws IOException {
super(true);
width = getWidth();
height = getHeight();
currentX = width / 2;
currentY = height / 2;
delay = 20;
System.out.println("载入图片中···");//【问题就在这里,到了这里卡住了,不往下走了】
Image img1=Image.createImage("/flat3.png");
System.out.println("Loaded Picture 1");
sprite=new Sprite(img1,33,34);
Image img2=Image.createImage("/flat3.png");
System.out.println("Loaded Picture 2");
nonSprite=new Sprite(img2,33,34);
//this.setFullScreenMode(true);
}

public void drawScreen(Graphics g) {
g.setColor(0xFF0000);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0xFF0000);
sprite.setPosition(currentX, currentY);
sprite.paint(g);

nonSprite.setPosition(0, 0);
nonSprite.paint(g);

flushGraphics();
}

public void move() {
int keyStates = getKeyStates();
sprite.setFrame(0);
if ((keyStates & LEFT_PRESSED) != 0) {
currentX = Math.max(0, currentX - 1);
sprite.setFrame(1);
}
if ((keyStates & RIGHT_PRESSED) != 0) {
if (currentX + 5 < width) {
currentX = Math.min(width, currentX + 1);
sprite.setFrame(3);
}
}
if ((keyStates & UP_PRESSED) != 0) {
currentY = Math.min(0, currentY - 1);
sprite.setFrame(2);
}
if ((keyStates & DOWN_PRESSED) != 0) {
if (currentY + 10 < height) {
currentY = Math.min(height, currentY + 1);
sprite.setFrame(4);
}
}
}

public void start() {
isPlay = true;
Thread t = new Thread(this);
t.start();
}

public void stop() {
isPlay = false;
}

public void run() {
Graphics g = getGraphics();
while (isPlay == true) {
move();
drawScreen(g);
try {
Thread.sleep(delay);
} catch (Exception e) {
// TODO: handle exception
}
}

}

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式