1
A
回答
2
Node
■不要包含關於如何使用默認情況下用於創建它的FXML文件所使用的控制器的任何信息,因爲fxml只是創建場景的一種方式。但是你可以在FXML這樣的附加信息的userData
/properties
:
<AnchorPane xmlns:fx="http://javafx.com/fxml/1" fx:id="AnchorPane" prefHeight="400.0" prefWidth="600.0" onMouseClicked="#click" fx:controller="fxml.FXMLController">
<!-- store controller as userData property -->
<userData>
<fx:reference source="controller" />
</userData>
<properties>
<!-- store controller at key "foo" in properties map -->
<foo><fx:reference source="controller" /></foo>
</properties>
</AnchorPane>
如果你這樣做,你可以使用查找在您添加此類信息的節點的最近的祖先控制器
public static Object getController(Node node) {
Object controller = null;
do {
controller = node.getProperties().get("foo");
node = node.getParent();
} while (controller == null && node != null);
return controller;
}
來檢索properties
地圖信息或使用
public static Object getController(Node node) {
Object controller = null;
do {
controller = node.getUserData();
node = node.getParent();
} while (controller == null && node != null);
return controller;
}
檢索來自的信息財產。
你可能應該只使用一種方法來添加信息,而不是兩者。另外它會更好地代替foo
作爲關鍵...
相關問題
- 1. 從回調獲取控制器實例
- 2. Java FXML從另一個控制器獲取控制器實例
- 3. Drupal 8 - 從控制器獲取當前節點ID
- 4. Rails異常 - 從控制器獲取實例變量
- 5. 如何從actionResult獲取控制器實例
- 6. ExtJS 4.2.1 - 無法從控制器獲取視圖實例
- 7. 如何從Drupal 7中的entity_metadata_wrapper實例獲取節點/實體?
- 8. 從節點控制器調用節點控制器,如何發送數據?
- 9. 從控制器獲取$ viewValue
- 10. 從PHP SimpleXML節點獲取實際值
- 11. Openstack - 控制器節點
- 12. 獲取控制點擊點
- 13. JavaFX - 如何獲取控制器對象的實例
- 14. 在控制器中獲取服務實例
- 15. 以編程方式獲取視圖控制器的實例
- 16. 獲取學說的一個實例,在控制器
- 17. 如何在Ember.js中獲取控制器的實例?
- 18. 獲取另一個控制器實例類
- 19. 在AppDelegate.m中獲取視圖控制器的實例
- 20. 如何在控制器中獲取樹實例 - 分機4
- 21. 如何獲取由AngularJS創建的控制器實例?
- 22. 如何獲取當前控制器的實例變量?
- 23. AngularJS - 在控制器外部獲取$ cookies實例
- 24. 訪問控制器實例
- 25. 如何從控制器中獲取配置(需要從控制器中獲取)?
- 26. 從父節點獲取img節點
- 27. 從控制器的輔助方法實例化實例變量
- 28. openNMS從DNS服務器獲取節點
- 29. 代碼點火器從視圖到控制器獲取ajax值
- 30. 從控制器獲取Int值從$ .Ajax
可能是這對你有幫助。 [通過參數-JavaFX的FXML](http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml/40193164#40193164) – CTN