我想在Java中5秒钟后从对象的函数中获取返回值

问题描述 投票:0回答:1

我正在制作一个基本的纸牌游戏,人类用户可以用计算机玩,也可以用Java用计算机玩。我想从扩展我的Player类的Computer Player类的选择函数中选择一个随机数作为随机数。但是我想在调用选择功能5秒后回答。另外,我还必须从人类播放器类的选择功能中使用鼠标侦听器来回答。

我创建了一个等待计时器,该计时器在调用选择函数时启动。

Timer waiter = new Timer(5000,this);
boolean is_waiting;

public int select_cart() {
        waiter.start();
        is_waiting = true;
        Random r = new Random();
        int random = r.nextInt(getCartNumber()) + 1;
        int selection = random;
        while(is_waiting){
            System.out.println("Computer is selecting...");
        }
        return selection;
    }

@Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource() == waiter){
            is_waiting = false;
            waiter.stop();
        }
    }

我希望select_cart函数在5秒钟后返回一个值,但是此代码打印为“ Computer is selection ...”,以进行无穷循环。

我正在制作一个基本的纸牌游戏,人类用户可以用计算机玩,也可以用Java用计算机玩。我想从计算机播放器的选择功能中将选择作为随机数...

java swing timer actionlistener
1个回答
0
投票

如果从事件调度线程调用了select_cart

© www.soinside.com 2019 - 2024. All rights reserved.