JavaFX: utilisez une seule scène ou plusieurs scènes pour créer une interface utilisateur avec un contenu statique et dynamique?


Bravo,

Je suis assez nouveau sur JavaFX2. J'ai déjà fait des recherches sur les principes de base: les étapes qui contiennent des Scènes. Les scènes peuvent être commutés. Mais ne changer que des parties de scène ne semble pas être un usage courant.

Mon problème: J'essaie de créer une application avec un titlepane (contenant une étiquette et quelques boutons) et un volet contenant un contenu dynamique supplémentaire. Le titlepane y restera tout au long du cycle de vie.

Maintenant je suis confus sur quelle est la meilleure manière de réaliser une mise en page. J'ai trouvé quelques idées comme ici pour faire de ma disposition racine un Borderpane et changer son centre. Dans ce cas, je me retrouverais avec une seule scène. Mais je ne suis pas shure si c'est comme ça que cela devrait être fait.

Toute aide et idées sur ce sujet est très appréciée. cheers tobi

PS: j'utilise des fichiers FXML pour créer ma mise en page et mon contrôleur pour gérer chaque vue.

Author: Community, 2016-05-31

1 answers

Eh bien, il y a cette question: Chargement du nouveau fxml dans la même scène , qui est (peut-être) un duplicata de la vôtre. Je n'appellerais pas la solution là-bas une "meilleure pratique", mais elle est probablement assez décente pour une petite application. La réponse fournit un petit framework pour permuter des volets de contenu contrôlés par fxml dans et hors d'une partie de la scène principale.

Similaire est AngelaGérer plusieurs scènes .

Des solutions plus complètes sont des choses comme Gluon Bureau (dont je n'ai pas utilisé) ou postcombustion.fx .

Pour une application réelle non triviale, regardez l'application SceneBuilder, qui est probablement la meilleure référence de "meilleure pratique" que vous pourriez trouver pour une application JavaFX de taille décente. Mais, comme il est non-trivial, comprendre son architecture est probablement non négligeable aussi.

 1
Author: jewelsea, 2017-05-23 12:15:56