当前页面: 开发资料首页 → 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计时不太准确