Comment charger le contenu de JavaFX onglets de façon dynamique?

J'ai une interface graphique, faite à l'aide de JavaFX avec FXML.

Ce GUI a beaucoup de composants et pas tous d'entre eux sont nécessaires à un moment donné du temps.

Par exemple, imaginer une interface graphique utilisateur qui reçoit de son serveur, une liste de villes.
Chaque ville est décrite sur son propre onglet (et décrite avec beaucoup de nœuds). L'ensemble des villes contient 30 éléments.

Lorsque l'interface utilisateur est lancé, il demande au serveur une liste des villes.
Le serveur renvoie une valeur aléatoire "sous-ensemble" de villes (donc, il peut être de Moscou + Riga + New York ou Saint-Pétersbourg + de Tokyo, ou seulement d'Amsterdam, ou tous les 30 villes dans un jeu).

. Je n'ai pas besoin d'avoir toutes les 30 onglets dans mon nœud de l'arbre (je suppose qu'ils vont juste "manger" de la mémoire et rien de plus).

Je veux gérer la quantité d'onglets que j'ai à chaque instant sur mon interface graphique.

La première solution simple que j'ai est le suivant:

  1. Créer un fichier FXML qui contient les composants pour toutes les villes
  2. Lors de l'initialisation du contrôleur de classe, supprimer des onglets, qui ne sont pas nécessaires.

Il y a des problèmes que j'ai avec cette solution. Tout d'abord, je ne sais pas si tabPane.getTabs().remove(index) vraiment supprime l'onglet et l'ensemble de son contenu dans les nœuds de l'arbre. Deuxièmement, tous les inutiles, les onglets seront initializated avant leur sera enlevé, alors ils utilisent de la mémoire et des ressources de toute façon, et mon interface graphique peut être un plus lent qu'il a à être.

La deuxième solution que j'ai est:

  1. Faire beaucoup de FXMLs. Un pour toutes les villes, un pour chaque ville et pour chaque combinaison de villes.

Mais il y aura de nombreux FXMLs, donc cette solution est d'ailleurs pas utile.

La solution que je rêve de:

  1. Créer un fichier FXML pour chaque ville et pour l'application principale avec des onglets.
  2. Charge FXML ville de fichier contenu dans un onglet dynamiquement en cas de besoin.

Donc, si quelqu'un a des idées sur cette tâche, ou connait la solution, s'il vous plaît aider ma...

OriginalL'auteur Agafonova Victoria | 2012-08-27