2010-01-29 80 views
2

我有一个扑克框架,我正在为其开发一个“玩家”。基本上我正在实现一个实现由框架定义的Player接口的对象。我试图在这个播放器上放置一个图形用户界面,游戏的作用方式是,这个经销商在我的播放器上调用act()方法,预计返回类型为Action。我遇到的问题是,一旦act()方法被调用,我更新GUI(使用Swing编写)来显示可用的选项,但是现在我需要方法不要返回,直到玩家选择了一个选项。这些选项显示为JButton,点击时由actionListener对象处理。我如何才能使act()方法在用户采取行动之前不会返回?我需要线程休眠/等待,直到它被事件触发唤醒,我不确定语法和最佳方式。有任何想法吗?方法睡眠,直到事件触发

感谢,

阿里

回答

2

我认为这种方法是有缺陷的。 Act方法不应该等待。相反,它应该在Player实例上注册一个事件(我们称之为Acted事件)。同时它应该启动一个计时器,比如20秒,并且如果在计时器用完之前没有发生事件,发牌者应该让玩家自动折叠(或者根据情况进行检查)并且执行相同的操作对于下一位玩家来说。

这只是我的头顶,但想一想。

+0

使用这种方法的经销商将需要一种方式来提醒玩家轮到他们采取行动,如果这种方法犯规返回然后玩家会再需要一个参考经销商,使他们可以将执行的操作发送给经销商。这会在我们的对象之间创建循环依赖关系 – Aly 2010-01-29 17:48:20

1

如果我没有回答你的问题,你需要使用一个ActionListener

ActionListener是您希望在发生事件时要警告的类中实现的接口。当在代码的其他部分触发特定事件时,此类将由Action Listener接口的抽象方法警告。

向您展示一个简短的答案并不容易,但我得到了一个可以帮助您的世界性问候示例。

http://java.sun.com/docs/books/tutorial/uiswing/events/actionlistener.html

HIH