强制执行等待鼠标单击的功能

时间:2013-11-10 12:30:52

标签: java multithreading swing mouseevent wait

过去一个月我一直被困住,我找不到任何解决方案。 我的问题是我正在写一个由四名球员组成的比赛。三个是计算机,一个是人。

所以有一个用于计算机的play()函数和一个用于人类的Overridden play()函数。  这是人类玩家将使用的功能

 @Override
 public void play(){
    for(int i=0 ; i <13;i++){
    getJLabels()[i].addMouseListener(new MouseAdapter()
    {
        public void mouseClicked(MouseEvent evt)
        {
            int Index = getIndex(getJLabels(), (JLabel)evt.getSource());
            getJLabels()[Index].setIcon(getHand()[Index].getBackSide());
            getPlayerJLabel().setIcon(getHand()[Index].getCardImage());
            setObjectForPlay(getHand()[Index]);
        }
    });
}
    temp = getObjectForPlay();
    return temp;
}

其他三名玩家使用play()并自动返回一个对象。我的意思是mouselistener仅适用于此human.play()函数

我从嵌套循环运行这些函数。当一轮循环完成时,每个玩家完成他的游戏()转动然后下一个循环开始。等等。

问题是计算机播放()功能不等人类点击。 我希望当循环播放人类Play()然后等待人类点击并返回对象。当人类播放()以点击结束然后下一次电脑播放()呼叫

我的英语很差,谢谢理解 等待好的解决方案

0 个答案:

没有答案