初学者:J2ME按键绘图问题
大家好,我初学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()导致屏幕刷新。所以已绘图形消失。有谁能帮助我解决这个问题吗?谢谢。