javafx:fxml:显示元素两次

时间:2013-09-26 11:07:40

标签: java javafx-2 fxml javafx-8

我想知道是否有一种简单的方法可以在FXML(例如文本框)中克隆元素,以便多次显示它们。

以下情况:

我有TabView并希望在第一个标签元素X上显示第二个标签元素Y,并在第三个标签上显示我要显示XY

不允许发布相同的fx:id(Netbeans说),并在不同的X文件中导出Y.fxml,这样我只需将它们包含两次,两者都不起作用。那是另一个问题。

你会如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

使用自己的FXML创建一个新组件。然后你可以包含任意数量的内容。

实现此目的的一种方法是实现扩展javafx组件(例如Pane或VBox)的自定义java类,然后在该类的构造函数中加载其布局的FXML。使用FXMLLoader,您可以将控制器和root设置为当前组件,并在FXML中使用fx:root标记。

你将拥有一个带有java类的组件,它将成为它自己的FXML的根和控制器。

答案 1 :(得分:0)

我通常会建议将整个.FXML分成3个不同的部分,这些部分可以单独维护。

TabViewSplitPanes以及此类所有容器应位于独立的FXML中,而每个新窗格应位于另一个容器中。在你的情况下:

  • TabView = 1 FXML
  • 标签1 = 1 FXML
  • Tab 2 = 1 FXML

您可以以这种方式导出它们,但元素需要像HBox这样的容器或简单的东西(比如启动SceneBuilder或Pane Parent时需要创建的root