我想知道是否有一种简单的方法可以克隆FXML
(例如文本框)中的元素以多次显示它们。
以下情况:
我有一个TabView
并且想要在第一个 Tab 元素X
、第二个 Tab 元素Y
和第三个 Tab 上显示我想要显示X
和Y
。
不允许复制相同fx:id
的内容(Netbeans 说)并导出X
和Y
在不同的.fxml
文件中,所以我只包含它们两次,两者都不起作用。那是另一个问题。
你会如何解决这个问题?
I would generally suggest splitting the whole .FXML
into 3 different pieces which can be maintained seperately.
TabView
, SplitPanes
and all containers like this should be in a standalone FXML
and each new pane in another one. In your case:
You can export them in that way, but the elements need a container like HBox
or something simple (like the Pane
you need to create when you start SceneBuilder or your root
Parent)
使用自己的 FXML 创建一个新组件。然后,您可以包含任意数量的内容。
实现此目的的一种方法是实现一个扩展 javafx 组件(例如 Pane 或 VBox)的自定义 java 类,然后在此类的构造函数中加载其布局的 FXML。使用 FXMLLoader,您可以将控制器和根设置为当前组件,并在 FXML 中使用 fx:root 标记。
您将拥有一个带有 java 类的组件,该组件将成为其自己的 FXML 的根和控制器。