Dynamique/instantané redimensionner en JavaFX
Comment voulez-vous créer une JavaFX application (instantanément) redimensionne dynamiquement? Droit maintenant, j'ai codé une application simple qui redimensionne dynamiquement, mais les modifications de mise en page ne les afficher qu'après le relâchement du bouton de la souris sur une traînée. Je veux voir instantanément les résultats et les modifications de mise en page avant ce bouton est relâché.
Je suis en supposant que cela se fait simplement en liant les valeurs correctes/contrôles inverse... Toute aide serait super!
EDIT:
Voici comment j'ai obtenu les choses de travail (grâce à Praeus). Exactement comme il l'a dit, j'ai eu de lier mon conteneur de niveau supérieur/mise en page de la largeur et la hauteur de la scène.la largeur et de la scène.hauteur de. --
var scène: Scène;
Stade {
titre: "le titre de l'Application"
scène: la scène = Scène {
contenu: [
XMigLayout {
largeur: lier la scène.largeur;
hauteur: lier la scène.hauteur;
...}]}}
OriginalL'auteur Greg | 2010-08-02
Vous devez vous connecter pour publier un commentaire.
En fait, si vous avez déjà tout organisé dans les mises en page, alors vous pourriez être en mesure de simplement lier le haut niveau de la mise en page conteneur(s) de largeur et de hauteur de la scène.la largeur et de la scène.hauteur de. Je ne pense pas que le haut niveau de commandes de mise en page sont gérés par quoi que ce soit, de sorte que vous pouvez être sûr il suffit de régler la largeur et la hauteur de la mise en page directement. Si cela ne fonctionne pas, alors vous pourriez avoir du succès liaison la layoutInfo de largeur et de hauteur.
Idéalement, vous souhaitez utiliser la mise en page de gestion avant de recourir à la lie. Excessive lie peut être un problème de performances, et peut conduire à ralentir l'affichage comme vous le redimensionnement. Dans ce cas, vous pouvez probablement utiliser simplement se lie pour le conteneur de niveau supérieur, et ensuite tous les enfants du conteneur de niveau supérieur doit redimensionner en conséquence. Au moins, je pense que cela devrait fonctionner.
OriginalL'auteur Praeus
Bind est différent dans JavaFX la version 2.0. Angela Caicedo vidéo montre comment lier les propriétés bien. Une variable doit être configuré comme un ObservableNumberValue et de ses méthodes get et set utilisé. Après l'installation, vous pouvez le lier ensuite à un composant de la propriété.
Eric Bruno post est une autre façon de faire.
Modifications: Ajout d'un autre, plus précis, réponse où je l'ai trouvé.
OriginalL'auteur Jeremy
Oui je pense que vous êtes sur la bonne voie de liaison serait le moyen le plus évident de faire ce que vous essayez de faire. Vous pouvez également regarder des déclencheurs.
Lire la 1.3 guide de mises en page comme un point de départ si vous ne l'avez pas déjà
La disposition des conteneurs de gérer automatiquement la mise en page dynamique du comportement de leur contenu nœuds. Cependant, il est souvent souhaitable d'utiliser le mécanisme de liaison de la JavaFX Script pour établir certains aspects dynamiques de la mise en page. Par exemple, vous pouvez lier la largeur et la hauteur d'une HBox conteneur à la Scène de la hauteur et la largeur de sorte qu'à chaque Scène redimensionne, le HBox conteneur redimensionne.
C'est aussi probablement la peine de lire les articles et billets de blog par JavaFX disposition gourou Amy Fowler
Lien brisé....
J'ai corrigé le lien, mais veuillez noter ma réponse fait référence à l'origine JavaFX script qui n'est plus supporté.
OriginalL'auteur Matthew Hegarty
Voici ce que j'ai fait pour obtenir mon redimensionnement comment je l'ai aimé. Il y a un moyen plus facile surement mais je ne sais pas.
Ma méthode principale des charges de mon contrôleur de scène, puis appelle mon contrôleurs de la méthode init ()
Je suis à l'aide d'un gridpane qui redimensionne dynamiquement comme l'ensemble de la scène est redimensionnée par l'utilisateur de sorte qu'il s'adapte toujours. C'est becaus son pourcentage de dimensionnement. Ceci est fait dans le fxml façon plus facile qu'avec la liaison de l'OMI.
Rappelez-vous comment mon contrôleur de classe avait sa méthode init() est appelé. Bien init() appelle setupUI où je reçois ma hauteur et de la largeur et de créer des rappels pour la hauteur et la largeur des modifications plus tard. Ces changement de ma classe à l'échelle des variables mHeight et mWidth;
Finalement je peux appeler dynamicResize() qui permettent d'ajuster chaque objet dans le gridpane comme un pourcentage de lignes de largeur ou de la hauteur
OriginalL'auteur cagney