0
A
回答
4
是的,你可以這樣做。雖然,它可以做到,我不推薦這種方法。
請勿在FXML中放置fx:controller
屬性。創建一個新的控制器並將相同的控制器設置爲單獨的FXMLLoader實例。
CustomerDialogController dialogController =
new CustomerDialogController(param1, param2);
FXMLLoader summaryloader = new FXMLLoader(
getClass().getResource(
"customerSummary.fxml"
)
);
summaryLoader.setController(dialogController);
Pane summaryPane = (Pane) summaryLoader.load();
FXMLLoader detailsLoader = new FXMLLoader(
getClass().getResource(
"customerDetails.fxml"
)
);
detailsLoader.setController(detailsController);
Pane detailsPane = (Pane) detailsLoader.load();
SplitPane splitPane = new SplitPane(
summaryPane,
detailsPane
);
我想要創建一個控制器,因爲我有IMO使用共享控制器只是爲了共享數據不是此優選的解決方案將數據發送beetwen controlers
問題。
相反,無論是共享多個控制器之間的數據,對於此見的例子:
有一個進一步的實例中的位置:
1
使用fx:root
構造而不是fx:controller
。這在Custom Components section of the FXML docs解釋。如果您想要更大的代碼示例,我在this example for my students中使用了它。
使用這種方法,創建視圖和控制器將變得更加簡單和靈活。您將能夠像在應用程序中使用其他任何對象(例如,通過構造函數或setter方法傳遞數據)一樣在控制器之間共享數據並連接控制器。
如果您使用SceneBuilder,則只需刪除控制器引用並選中「Use fx:root」框。然後按照示例中所示重新編寫代碼。
相關問題
- 1. 從另一個控制器了JavaFx
- 2. JavaFx控制器設置對象另一個控制器
- 3. JavaFX。從另一個控制器訪問一個控制器數據
- 4. ASP.NET MVC 2重定向從一個控制器到另一個
- 5. 角2 - 從一個控制器到另一個
- 6. 2 UIView,一個單一的控制器
- 7. JavaFx TabPane:想要一個控制器對於2個或更多選項卡
- 8. 從一個控制器到另一個控制器?
- 9. 從一個控制器到另一個控制器的變量
- 10. 正從一個控制器值到另一個控制器
- 11. 實現一個導航控制器到一個tabbar控制器
- 12. 重定向一個控制器到另一個控制器
- 13. JavaFX從控制器獲取按鈕到另一個類
- 14. Symfony 2控制器轉發到另一個控制器時丟失容器
- 15. JavaFX的2窗口事件控制器
- 16. 如何從一個控制器1轉換到控制器2,然後讓控制器2立即推另一個控制器?
- 17. 2佈局在一個控制器
- 18. 一個路由2控制器 - Laravel
- 19. 將控制權從一個控制器重定向到另一個控制器
- 20. 從一個控制器編輯2控制器(正確)
- 21. JavaFX中兩個控制器的交互
- 22. 用一個控制器處理多個JavaFX按鈕
- 23. 使用一個控制器播放/暫停多個MediaViews JavaFX FXML
- 24. 連接2個控制器並可以訪問第二個控制器中的第一個控制器屬性
- 25. CakePHP - 2個控制器,1個表格
- 26. JavaFX SceneBuilder控制器
- 27. 了JavaFx控制器
- 28. 在一個控制器中顯示2個選取器視圖
- 29. 在處理2個控制器之間的控件時發生java.lang.NullPointerException - Javafx
- 30. 如何在另一個JavaFX控制器中設置字符串或文本在JavaFX TextField控制器
對於多個FXML文件可以使用相同的控制器類,但是你的代碼將很難遵循,這是一個非常糟糕的主意。 (還要注意,使用'fx:controller'屬性,每次調用'FXMLLoader.load(...)'時,都會有不同的控制器*實例*,即使使用相同的控制器*類*。)每個FXML文件都有一個不同的控制器類。 –
從不需要多個FXML文件共享相同的控制器。如果您需要在控制器之間進行通信,請使用[此處]描述的技術(http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml)。 –