做一个java程序的一部分等待...而不是整个程序

时间:2012-10-28 15:02:05

标签: java multithreading

我有一个花卉游戏应该在预定的时间掉花。我有一个级别类,level1()是一个方法。在level1方法中,我使用...

Thread.wait(10000);

但它使整个程序等到它达到那个标记。我希望程序加载然后等待。我也试过......

public static void waiting(int n) {        
    long t0, t1;

    t0 = System.currentTimeMillis();

    do{
        t1 = System.currentTimeMillis();
    }
    while (t1 - t0 < n);
}

但它也没有任何区别。有一个更好的方法吗? 这是方法代码......

    package net.blockydigital;

    public class Level {
        RedFlower rf;
        PinkFlower pf;
        WhiteFlower wf;
        YellowFlower yf;
        public Level(){
            rf = new RedFlower();
            pf = new PinkFlower();
            wf = new WhiteFlower();
            yf = new YellowFlower();
        }
        public void level1(){
            try{
            Thread.sleep(10000);
            }catch(Exception e){
                e.printStackTrace();
            }
            rf.dropFlower();
        }
     }    

然后这就是我调用代码的地方......

    public PlayGame(){
    sc = new ShoppingCart();
    pf = new PinkFlower();
    rf = new RedFlower();
    wf = new WhiteFlower();
    yf = new YellowFlower();
    s = new Shoes();
    l = new Level();
    addKeyListener(new AL());
    setFocusable(true);
    setBackground(Color.WHITE);
    clock = new Timer(5, this);
    clock.start();
    l.level1();
}

我希望添加此代码有助于!!!

1 个答案:

答案 0 :(得分:1)

我没有Java经验,但你应该在主线程之外的另一个线程中调用level1方法。这样程序运行,thread.sleep只用于level1方法。