2014-02-06 33 views
1

我正在實現一個遊戲,我想要求玩家點擊一個特定的視圖。我想我的控制線程等待,直到我得到一個值(我點擊了視圖和處理結果)。目前我通過創建一個線程,運行一個方法,要求他們單擊然後輸入一個while循環,當鼠標單擊事件更改while循環中使用的變量時終止。JavaFX - 等待用戶點擊元素上的鼠標

我正在寫一個遊戲,我有一個線程不斷接收事件。在特定事件中,我想提示用戶輸入響應,但要做到這一點,需要我在JavaFX線程上(據我所知)。

在JavaFX中有更好的方法嗎?謝謝!

+0

你的控制線程是什麼?它是您創建的某個線程還是JavaFX應用程序線程?如果它是你創建的一個線程,你能描述一下是什麼,它是生命週期,它是如何工作的?也許提供一個[最小樣本](http://stackoverflow.com/help/mcve)。 (你可以編輯你的問題來更新它,而不是在評論中回覆)。 – jewelsea

+0

編輯我的原始問題 – Andrew

回答

0

JDK文檔中有幾個工具「隱藏」在線程中,可以幫助您解決此類問題。通常當我們使一個例程代碼等待一些可以繼續的條件時,我們使用線程同步器。

我希望我的控制線程等待,直到我得到一個值回[...]

CountDownLatchCyclicBarrierFutureTask可以是可以解決你的問題類。這些功能非常簡單。它們具有停止線程並在滿足某些條件時釋放它們的功能。這些類中的每個類的區別僅僅是應用於終止和釋放線程的語義。閱讀每個文檔,看看哪一個最適合你。

你也可以看看其他的研究來源。世界上沒有更好的學習來源(在我看來)比Brian Goetz的書「Java Concurrency In Practice」中的內容更好。我向你保證,如果你購買這本書(或者至少獲得關於這個主題的令人難以置信的知識),你將能夠輕鬆地操縱線程。明確說明您不需要購買本書來解決當前的問題。購買這本書只是我的建議,讓你有更多關於線程的知識。您可能會通過查看同步我提到的線程的類的文檔來解決您的問題。

祝你好運在你的項目。 ;)