我现在在写的是一个扑克牌游戏,在实现人机对战出牌时候需要用到延时操作的时候出现了问题,希望大家帮忙咯
我本意是想 在自己出一张牌后 各电脑玩家能够相继间隔一s 然后出牌,代码如下:
// 用来实现电脑间隔一秒出牌
public void playWithComputer ()
{
for(int i = 1 ; i <4 ; i++)
{
try{
Thread.sleep(1000); // 停一秒
putDeck(play[i][0],i);// 出牌(putDeck函数是把牌放到相应位置)
}
catch(Exception e)
{
e.printStackTrace() ;
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("出牌"))
{
this.setLocation(473,354); // 把牌放到相应位置
main.playWithComputer() ;
}
}
但实际产生的情况是, 当点击按钮 “出牌”后,过了三面后,全部的牌一起放到相应位置
自己感觉可能是什么刷新的问题。。但是不知道到底怎么回事,还有就是要怎么修改。。
我本意是想 在自己出一张牌后 各电脑玩家能够相继间隔一s 然后出牌,代码如下:
// 用来实现电脑间隔一秒出牌
public void playWithComputer ()
{
for(int i = 1 ; i <4 ; i++)
{
try{
Thread.sleep(1000); // 停一秒
putDeck(play[i][0],i);// 出牌(putDeck函数是把牌放到相应位置)
}
catch(Exception e)
{
e.printStackTrace() ;
}
}
}
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(arg0.getActionCommand().equals("出牌"))
{
this.setLocation(473,354); // 把牌放到相应位置
main.playWithComputer() ;
}
}
但实际产生的情况是, 当点击按钮 “出牌”后,过了三面后,全部的牌一起放到相应位置
自己感觉可能是什么刷新的问题。。但是不知道到底怎么回事,还有就是要怎么修改。。
多建一线程
public void run()
{
for (int i = 0; i <100; i++) {
System.out.println("线程"+Thread.currentThread().getName());
try {
Thread.sleep(1);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
谢谢各位了。我先去查下定时器用法。刚学JAVA - -