当前页面: 开发资料首页 → J2ME 专题 → 通过线程来控制在一定时间内输出一段文字 
通过线程来控制在一定时间内输出一段文字 
摘要: 通过线程来控制在一定时间内输出一段文字  
我想达到的效果是能在显示屏上按照设定的次数以1秒一次的速度输出文字。遇上了逻辑问题,3个类,MIDlet(继承MIDlet),thread(继承Runnable),mycanvas(继承Canvas)。应该有怎样对thread和mycanvas进行实例化才能达到效果?我的想法是在mycanvas中实例化thread,但是在run方法中又不能调用repaint。在thread中实例化mycanvas的话,在MIDlet中就无法控制显示。。。
我的代码就不写了~~~因为人已经完全混乱了,对面向对象的编程思维还不熟悉。。。
问题说的不是很清楚,RUN里面 SLEEP(1000); 外面用死循环
run() {
while(true) {
repaint();
Thread.sleep(1000);
}
}
全部都由主程序来实例化
看迷糊了
在Midlet里实例化MyCanvas类就可以了啊
MyCanvas这样写就行了
public MyCanvas extends Canvas implements Runnable
{
    private Thread th;
    private int i_Speed = 0;
    private boolean is_Run = false;
    private long startTime;    
    public MyCanvas()
    {
        i_Speed = 30;
        is_Run = true;
        th = new Thread(this);
        th.start();
    }
    public void paint(Graphics g){}
    public void run()
    {
        while(is_Run)
        {
            if(System.currentTimeMillis() - startTime >= 1000)
   {
       startTime = System.currentTimeMillis();
                //这里写你的代码;
   }
            try
   {
Thread.sleep(i_Speed);
   }
   catch (Exception e)
   {
         e.printStackTrace();
   }
        }
    }
}
用Thread.sleep计时不太准确