2014-10-03 33 views
0

我想在應用程序啓動的時候根據系統信息設置好幾個UI元素(也就是說,這個信息並不是先驗知道的,所以把它靜態地設置在css或者fxml文件中)。 控制器構造函數是否是最好的地方? 首先要考慮的是在擴展Application的主類的start()init()方法上,但看起來這樣做的設置阻止了程序員輕鬆訪問沿着節點層次結構的ui元素。 (另一方面,通過@FXML注入在相應控制器中非常容易)在JavaFX中初始化GUI的最佳方法?

回答

0

這取決於您需要完成的工作類型。如果你需要任何依賴於你的應用程序的階段,然後在啓動方法中執行它。如果不是,那麼它可以在構造函數,init或start方法中執行。請記住,啓動機制期望應用程序子類提供無參數構造函數,因此如果您在其中包含啓動邏輯,則可以避免使用構造函數參數。然而,如果你打算使用一個控制器(我會建議),那麼這個邏輯應該發生在它的initialize方法中,而不是在你的應用程序類中。

如果您需要從控制器對舞臺的引用,那麼您可以找到許多此類解決方案來將引用傳遞給控制器​​,例如在應用程序類中使舞臺引用公開和靜態,或者讓控制器中的這樣一個字段,可以根據應用程序的啓動方法進行設置。

相關問題