首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2ME开发 >

MIDP运行异常

2012-01-10 
求助:MIDP运行错误我是一大一菜鸟,在初学J2ME MIDP时按照书中步骤编了一个低级绘图的MIDP,程序如下import

求助:MIDP运行错误
我是一大一菜鸟,在初学J2ME MIDP时按照书中步骤编了一个低级绘图的MIDP,程序如下 
import javax.microedition.midlet.*; 
import javax.microedition.lcdui.*; 

public class DrawTest extends MIDlet{ 
public DrawTest(){ 
Display.getDisplay(this).setCurrent(new DrawCanvas()); 

protected void startApp() throws MIDletStateChangeException{} 
protected void pauseApp(){} 
protected void destroyApp(boolean unconditional) throws MIDletStateChangeException{} 


另外一个类: 
import javax.microedition.lcdui.*; 
class DrawCanvas extends Canvas{ 
private Image img; 
DrawCanvas(){ 
try{ 
img = Image.createImage("/mi.png"); 
}catch(java.io.IOException e){} 

protected void paint(Graphics g){ 
g.setColor(0x000066ff); 
g.fillRect(0,0,getWidth(),getHeight()); 
g.drawImage(img,0,0,Graphics.TOP|Graphics.LEFT); 
g.setColor(0x00000000); 
g.drawLine(40,10,90,10); 
g.setStrokeStyle(Graphics.DOTTED); 
g.drawLine(40,20,90,20); 
g.setStrokeStyle(Graphics.SOLID); 
g.drawString("Hello!",10,30,Graphics.TOP|Graphics.LEFT); 
g.drawRect(10,55,20,15); 
g.fillRect(50,55,20,15); 
g.drawRoundRect(10,75,20,20,7,7); 
g.fillRoundRect(50,75,20,20,7,7); 
g.drawArc(10,100,15,15,0,300); 
g.fillArc(50,100,15,15,0,300); 



这两个文件都按要求保存到相应src文件夹下了! 

可是运行时候并没有出现书中描绘的那图形! 
哪位大侠知道是为什么吗? 
小弟先行谢过了啊! 



[解决办法]
把Display.getDisplay(this).setCurrent(new DrawCanvas());写到protected void startApp() throws MIDletStateChangeException{} 里面试试

[解决办法]
首先你确定下,模拟器有没有报错?
强烈怀疑是图片出错,导致绘制图片及其后的线条绘制都没有执行到
图片绘制前的背景填充没问题
[解决办法]
老兄,这种问题你不要急。
最笨也是最实用的调试方法,是在你的代码中插入System.out.println("标记");
插入到你的paint函数中,因为你说改变颜色可以有反应,说明第一句能过。你就看看自己程序怎么执行的。你会看console的输出信息么,没准已经告诉你错在哪儿了。

其实,画不出来图像时,最先应该检查clip,但我看你并没有设置clip。所以,你还是多调调吧。这种问题很基础的。

热点排行