2013-10-10 32 views
-2

我需要在我的控制器ANS當前舞臺搜索我發現了兩個解決方案後:JavaFX的:第一階段在控制器 - 最好的解決辦法

  1. 傳遞舞臺上,以我的控制器在初始化(如that
  2. 得到它(https://stackoverflow.com/a/12003426/2039619

什麼是最佳解決方案?

+0

我覺得這個問題不是比其他的更基於觀點。 我問過這個,因爲我想從其他地方獲得經驗。如何做到這一點。我想,這也是這個網站的目的。 我得到了一個非常有幫助的答案! – JulianG

回答

1

從FXML控制器中獲取舞臺可能會非常棘手,就好像尚未完成加載,您無法通過組件(在FXML中)訪問場景,從而無法訪問場景(空指針!)。您必須在initialize方法(來自Initializable接口)中添加代碼,以便在運行時從控制器中聲明的任何組件安全地獲取當前階段。

另一種選擇對我來說似乎更好,因爲您可以在ASAP階段做這些事情,這也意味着在呈現當前FXML之前,當您將舞臺明確地插入到控制器中時(使用setter,您添加一個參考它),您不需要等待當前FXML中的GUI內容。缺點是您需要添加顯式代碼以將階段交付給FXML控制器(以及從控制器到控制器等)。

+0

非常感謝! – JulianG