我是一大一菜鸟,在初学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。所以,你还是多调调吧。这种问题很基础的。