Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法在触发事件之前休眠_Java_User Interface_Swing_Event Handling_Multithreading - Fatal编程技术网

Java 方法在触发事件之前休眠

Java 方法在触发事件之前休眠,java,user-interface,swing,event-handling,multithreading,Java,User Interface,Swing,Event Handling,Multithreading,我有一个扑克框架,我正试图为它开发一个“玩家”。基本上,我正在实现一个对象,该对象实现由框架定义的播放器接口。我正试图在这个播放器上放置一个GUI,游戏的工作方式是庄家在我的播放器上调用act()方法,并期望返回类型为Action。我遇到的问题是,一旦调用了act()方法,我就会更新GUI(使用Swing编写)以显示可用的选项,但是我现在需要在播放器选择选项之前不返回该方法。这些选项显示为JButtons,单击时由actionListener对象处理。如何使act()方法在用户采取行动之前不返回

我有一个扑克框架,我正试图为它开发一个“玩家”。基本上,我正在实现一个对象,该对象实现由框架定义的播放器接口。我正试图在这个播放器上放置一个GUI,游戏的工作方式是庄家在我的播放器上调用
act()
方法,并期望返回类型为
Action
。我遇到的问题是,一旦调用了
act()
方法,我就会更新GUI(使用Swing编写)以显示可用的选项,但是我现在需要在播放器选择选项之前不返回该方法。这些选项显示为JButtons,单击时由actionListener对象处理。如何使
act()
方法在用户采取行动之前不返回?我需要线程睡眠/等待,直到它被触发的事件唤醒,我不确定语法和最好的方式来做这件事。有什么想法吗

谢谢


我认为这种方法有缺陷。
Act
方法不应等待。相反,它应该在
Player
实例上注册一个事件(我们称之为
Acted
事件)。同时,它应该启动一个计时器,比如说20秒,如果
Acted
事件在计时器用完之前没有引发,经销商应该让玩家自动折叠(或检查,取决于情况),并对排队的下一个玩家执行同样的操作


这只是我的想法,但请仔细想想。

如果我不理解你的问题,你需要使用ActionListener来解决这个问题

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

给你一个简短的答案并不容易,但我有一个hello world的例子可以帮助你


HIH

使用此方法,庄家需要一种方法提醒玩家轮到他们采取行动,如果此方法未返回,则玩家需要向庄家提供参考,以便他们可以将执行的行动发送给庄家。这将在对象之间创建循环依赖关系