2013-09-26 8 views
1

Je me demandais s'il existe un moyen simple de clone éléments dans FXML (tels que les zones de texte) pour les afficher plus d'une fois.javafx: fxml: afficher les éléments deux fois

situation suivante:

J'ai un TabView et que vous souhaitez afficher sur les premiers éléments de l'onglet X, sur les seconds éléments Tab Y et le troisième onglet Je veux afficher X et Y.

Dublication même fx:id n'est pas autorisé (Netbeans dit) et l'exportation X et Y dans différents fichiers .fxml, de sorte que j'inclure simplement les deux fois, ni travaux. C'est un autre problème.

Comment voulez-vous résoudre ce problème?

Répondre

0

Créez un nouveau composant avec son propre FXML. Ensuite, vous pouvez en inclure autant que vous le souhaitez. Une façon d'y parvenir est d'implémenter une classe java personnalisée qui étend un composant javafx (par exemple Pane ou VBox), puis dans le constructeur de cette classe, vous chargez le FXML de sa mise en page. Avec FXMLLoader, vous définissez le contrôleur et la racine comme le composant courant et vous utilisez la balise fx: root dans FXML.

Vous aurez un composant avec une classe java qui sera la racine et le contrôleur de son propre FXML.

0

Je suggère généralement de diviser l'ensemble .FXML en 3 morceaux différents qui peuvent être maintenus séparément.

TabView, SplitPanes et tous les contenants comme celui-ci devraient être autonomes FXML et chaque nouveau volet dans un autre. Dans votre cas:

  • TabView = 1 FXML
  • Tab 1 = 1 FXML
  • Tab 2 = 1 FXML

Vous pouvez les exporter de cette façon, mais les éléments ont besoin d'un conteneur comme HBox ou quelque chose de simple (comme le Pane vous devez créer lorsque vous démarrez SceneBuilder ou votre root parent)

Questions connexes