Display display = null;
String url = "http://188.2.222.253/screenshot.png";
DataInputStream is = null;
Image img= null;
try
{
HttpConnection c = (HttpConnection) Connector.open(url);
int len = (int)c.getLength();
if (len > 0)
{
is = c.openDataInputStream();
byte[] data = new byte[len];
is.readFully(data);
img = Image.createImage(data, 0, len);
Form f = new Form("Image");
GameCanvas gc = null;
Graphics g = null;
g.drawImage(img, 0, 0, 0); //NullPointerException
gc.paint(g);
display.setCurrent(gc);
}
else
{
showAlert("length is null");
}
is.close();
c.close();
}
catch (Exception e)
{
e.printStackTrace();
showAlert(e.getMessage());
}
g.drawImage(img,0,0,0)抛出NullPointerException。这意味着img为null(http://docs.oracle.com/javame/config/cldc/ref-impl/midp2.0/jsr118/javax/microedition/lcdui/Graphics.html)。我可以使用img与ImageItem及其NOT null。什么问题?
答案 0 :(得分:0)
您在致电Graphics g = null
之前设置了g.drawImage(img, 0, 0, 0)
。你的img
不是空的。它是你的Graphics对象。
在拨打GameCanvas gc = null
- 另一个gc.paint(g)
之前,您还设置了NullPointerException
3行。
除此之外,您无法使用此方法在GameCanvas
上创建和绘制。 GameCanvas
是一个抽象类。所以你需要创建一个扩展GameCanvas
的自己的类 - 如果GameCanvas
是你想要的。我也不确定是这种情况,因为你可以很容易地找到一张表格,如果你想要的只是显示一张图片。
请改为尝试:
img = Image.createImage(data, 0, len);
Form f = new Form("Image");
f.append(img);
display.setCurrent(f);