我有一个扑克框架,我正试图为其开发一个“玩家”。基本上我正在实现一个实现框架定义的Player接口的对象。我试图在这个播放器上放置一个GUI,游戏的工作方式是经销商在我的播放器上调用act()
方法并期望返回类型为Action
。我遇到的问题是,一旦act()
方法被调用,我更新GUI(使用Swing编写)来显示可用的选项,但是我现在需要方法不返回,直到玩家选择了一个选项。选项显示为JButtons,单击时由actionListener对象处理。在用户采取行动之前,如何才能使act()
方法无法返回?我需要线程休眠/等待,直到它被触发的事件唤醒,我不确定语法和最佳方法。有什么想法吗?
谢谢,
阿里
答案 0 :(得分:2)
我认为这种做法存在缺陷。 Act
方法不应该等待。相反,它应该在Acted
实例上注册一个事件(让我们称之为Player
事件)。同时它应该启动一个计时器,比如20秒,如果在计时器用完之前没有提出Acted
事件,经销商应该让玩家自动折叠(或根据情况检查)并为下一位玩家做同样的事情。
这只是我的头脑,但想一想。
答案 1 :(得分:1)
如果我不知道你的问题,你需要使用 ActionListener 。
ActionListener是在您希望在事件发生时发出警告的类中实现的接口。当在代码的其他部分触发特定事件时,将通过Action Listener接口的抽象方法警告此类。
用简短的答案向你展示并不容易,但我得到了一个可以帮助你的世界范例。
http://java.sun.com/docs/books/tutorial/uiswing/events/actionlistener.html
HIH