站内搜索: 请输入搜索关键词

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


↑返回目录
前一篇: 颜色渐变问题
后一篇: 在J2ME中,除了使用File Connection API以外,是否还存在其他通用或者专用的访问文件系统的方式?