2014-10-12 78 views
0

與場景生成器2 I創建的場景與以下結構:元素查找由ID沒有結果

BorderPane - > SplitPane - > AnchroPane - > SplitPane - > AnchorBane。 (http://pastebin.com/7LTNh1Jv

第二個SplitPane中的AnchorPane具有ID 工作臺 - 錨點。現在,我嘗試通過獲得這個AnchorPane的參考:

final BorderPane rootPane = loader.load(); 
final Node node = rootPane.lookup("#workbench-anchor"); 

節點始終是NULL。

有誰知道我在做什麼錯?

非常感謝!

回答

1

直到應用CSS爲止,查找功能將無法工作,這通常發生在第一幀渲染上。在顯示舞臺後,您可以嘗試執行查找。您也可以在查找之前通過致電

rootPane.applyCSS(); 

來強制執行此操作。

一般來說,查找並不是尋找場景圖(imho)元素的非常穩健的方法。在控制器類中進行任何初始化工作可能更好,使用@FXML注入來引用節點。

+0

@JamesD感謝您的回答!有沒有在控制器類中自動調用的方法,我可以做這些初始化的東西? – Hannes 2014-10-12 15:32:22

+1

在load()方法返回之前,''initialize()'方法在所有內容被加載並且'@ FXML'字段被注入後被調用。請參閱文檔的[Controller]部分(http://docs.oracle.com/javase/8/javafx/api/javafx/fxml/doc-files/introduction_to_fxml.html#controllers)。 – 2014-10-12 15:36:50

+0

控制器類需要與FXML文件在同一個文件夾(而不僅僅是包)中有一個原因嗎? – Hannes 2014-10-12 16:34:12