[英]javafx: fxml: display elements twice
我想知道是否存在一種簡單的方法來克隆 FXML
元素(例如文本框)以顯示一次以上。
以下情況:
我有一個TabView
並且想要顯示在第一個Tab元素X
上,第二個Tab元素Y
和第三個Tab上,我想顯示X
和Y
不允許復制相同的fx:id
(Netbeans說),並且將X
和Y
導出到不同的.fxml
文件中,因此我只將它們包括兩次,但均.fxml
。 那是另一個問題。
您將如何解決?
用自己的FXML制作一個新組件。 然后,您可以根據需要添加任意數量。
實現此目的的一種方法是實現一個自定義java類,該類擴展了javafx組件(例如Pane或VBox),然后在該類的構造函數中加載其布局的FXML。 使用FXMLLoader,您可以將控制器和root設置為當前組件,並在FXML中使用fx:root標記。
您將擁有一個帶有java類的組件,該組件將成為其自己的FXML的根和控制器。
我通常建議將整個.FXML
分為3個不同的部分,可以分別進行維護。
TabView
, SplitPanes
和所有類似的容器都應位於獨立的FXML
,每個新窗格都位於另一個窗格中。 在您的情況下:
您可以通過這種方式導出它們,但是元素需要一個容器,例如HBox
或簡單的容器(例如,啟動SceneBuilder或root
父Parent時需要創建的Pane
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.