我想知道是否有一种简单的方法可以在FXML
(例如文本框)中克隆元素,以便多次显示它们。
以下情况:
我有TabView
并希望在第一个标签元素X
上显示第二个标签元素Y
,并在第三个标签上显示我要显示X
和Y
。
不允许发布相同的fx:id
(Netbeans说),并在不同的X
文件中导出Y
和.fxml
,这样我只需将它们包含两次,两者都不起作用。那是另一个问题。
你会如何解决这个问题?
答案 0 :(得分:0)
使用自己的FXML创建一个新组件。然后你可以包含任意数量的内容。
实现此目的的一种方法是实现扩展javafx组件(例如Pane或VBox)的自定义java类,然后在该类的构造函数中加载其布局的FXML。使用FXMLLoader,您可以将控制器和root设置为当前组件,并在FXML中使用fx:root标记。
你将拥有一个带有java类的组件,它将成为它自己的FXML的根和控制器。
答案 1 :(得分:0)
我通常会建议将整个.FXML
分成3个不同的部分,这些部分可以单独维护。
TabView
,SplitPanes
以及此类所有容器应位于独立的FXML
中,而每个新窗格应位于另一个容器中。在你的情况下:
您可以以这种方式导出它们,但元素需要像HBox
这样的容器或简单的东西(比如启动SceneBuilder或Pane
Parent时需要创建的root
)