初学者:J2ME按键绘图问题

happyatlast 2007-09-20 10:34:13
大家好,我初学J2ME,有一个绘图问题解决不了,请大家帮忙,谢谢
题目要求很简单,按1,3,5分别画圆形,方形,三角。然后用2,4,6对所画图形进行移动
下面是我的代码

public class Displayable1 extends Canvas implements Runnable{


private static int m_KeyCode;
private static int m_KeyCode1;
private static int m_KeyCode2;

private static int x1=80;
private static int y1=80;
private void loop()
{
long lTick = System.currentTimeMillis() + 200;

repaint();//用线程刷新屏幕,每隔200毫秒
serviceRepaints();

while (System.currentTimeMillis() < lTick) {
Thread.yield();
}
}
private void jbInit() throws Exception{


}

protected void paint(Graphics g) {

g.setColor(0x00009900);
g.fillRect(0,0,this.getWidth(),this.getHeight());//画背景

g.setColor(0x000000);//画图形颜色





switch( m_KeyCode1){//根据按键值画图,
case 53:g.fillRect(x1, y1, 50, 50);break;
case 49:g.fillArc(x1,y1,50,50,0,360);break;
case 51:g.fillTriangle(x1,y1,110,110,80,120);break;
}

}

}
protected void keyPressed(int keyCode)
{
m_KeyCode = keyCode ;
}

protected void keyReleased(int keyCode)
{
m_KeyCode1=keyCode;
switch(m_KeyCode1){
case 50:y1-=10;repaint();break;
case 52:x1-=10;repaint();break;
case 54:x1+=10;repaint();break;
case 56:y1+=10;repaint();break;//根据放开键值移动图形。
}

}



public Displayable1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
new Thread(this).start();
}

public void run(){

while (midlet1.instance != null) {

loop();

}
}


}
现在的问题就是,按1,3,5可以绘出图形,但是按2,4,6,8想对图形进行移动操作的时候。确导致所画图形消失,我估计是因为线程执行的repaint()导致屏幕刷新。所以已绘图形消失。有谁能帮助我解决这个问题吗?谢谢。
...全文
191 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dapache 2008-07-22
  • 打赏
  • 举报
回复
本人最近在作一个手机触摸屏绘图的程序,也遇到你这个问题,想知道你具体是怎么解决的,怎样修改 paint()方法?

谢谢!希望看到后能尽快收到你的回复,在下感激不尽!我留个邮箱: duandebian@gmail.com
期待中...
happyatlast 2007-09-20
  • 打赏
  • 举报
回复
结了,问题已解决

790

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 其他移动相关
社区管理员
  • 移动开发其他问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧