JavaFX - 等待用户在元素上单击鼠标

时间:2014-02-06 19:56:23

标签: java multithreading javafx mouseevent wait

我正在实施游戏,我想让玩家点击特定视图。

我希望我的控制线程等到我得到一个值(我点击视图并处理结果)。目前我这样做是通过创建一个线程,运行一个方法,要求他们单击然后输入一个while循环,当鼠标单击事件更改while循环中使用的变量时终止。

我正在写一个游戏,我有一个线程不断接收事件。在特定事件中,我想提示用户提供响应,但要做到这一点,我需要使用JavaFX线程(据我所知)。

在JavaFX中有更好的方法吗?谢谢!

1 个答案:

答案 0 :(得分:0)

JDK文档中有几个“隐藏”的工具可以帮助您解决此类问题。通常当我们编写例程代码等待可以继续的某些条件时,我们使用线程同步器。

  

我希望我的控制线程等到我得到一个值[...]

CountDownLatchCyclicBarrierFutureTask可能是可以解决您问题的类。这些功能非常简单。它们具有停止线程的功能,并在满足某些条件时释放它们。这些类中的每个类的差异仅仅是应用于终止和释放线程的语义。阅读每个文档,看看哪一个最适合你。

您还可以查看其他研究来源。我认为世界上没有比Brian Goetz所着的书“Java Concurrency In Practice”中的内容更好的研究来源了。我向你保证,如果你买这本书,你将能够轻松操纵线程(或至少获得关于这个主题的难以置信的知识)。明确表示您不需要购买本书来解决当前的问题。购买这本书只是我的建议,让你对线程有更多的了解。您可能会通过查看同步我提到的线程的类的文档来解决您的问题。

祝你的项目好运。 ;)