IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

Dimensionner la scene


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut Dimensionner la scene
    Bonjour,

    Mon problème est assez simple. Je construit une stage, à laquelle j'associe une scene (en l'occurrence, une grille avec des boutons dedans...).. Quand la fenêtre apparaît à l'écran, elle a des dimensions rectangulaires par défaut, alors que la grille est carrée. J'aimerais que la stage soit dimensionnée en fonction du contenu de la scene

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    	public void start(Stage primaryStage) {
    		try {
    			primaryStage.setTitle("Mon application");
     
    			BorderPane root = new BorderPane();
     
    			initGrille(root); // Ma grille est créée là dedans et attachée au BorderPane
     
    			Scene scene = new Scene(root);
     
    			primaryStage.setScene(scene);
     
    // Quelque chose à faire ici pour redimensionner ???
     
    			primaryStage.show();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    C'est sans doute trivial comme problème, mais je n'ai rien trouvé comme documentation claire à ce sujet.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Ben, euh...................................... en mettant les dimensions appropriées lors de la construction ?

    Après construction, tu peux manipuler les dimensions du Stage par contre il faudra tenir compte d'info supplementaires comme la taille des bordures de la fenêtre (que tu peux connaitre via les bounds de la scene, le positionnement x et y de la scene et la taille du stage).
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  3. #3
    Membre averti
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut
    Merci pour tes informations. Cela ne m'a pas aidé directement, mais cela m'a tout de même conduit à essayer des choses. En définitive, j'ai résolu mon problème, mais sans comprendre réellement pourquoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    			initGrille(); // construction de grillePane
    			BorderPane root = new BorderPane(grillePane);
     
    			Scene scene = new Scene(root);
    			primaryStage.setScene(scene);
    			primaryStage.show();
    Ce code dimensionne la fenêtre en fonction de la grille, sans rien faire de plus. En revanche, le code suivant (qui me semble au premier abord être équivalent), ne donne pas du tout le même résultat...Est-ce que tu as une explication ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    			initGrille(); // construction de grillePane
    			BorderPane root = new BorderPane();
     
    			root.getChildren().add(grillePane);
     
    			Scene scene = new Scene(root);
    			primaryStage.setScene(scene);
    			primaryStage.show();

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Passer le noeud dans le constructeur invoque setCenter() ce qui change la valeur de la propriété center; mettre le nœud directement dans la liste children... n'est pas sensé être supporté... vu que layoutChildren() n'accède pas au contenu de cette liste. Après cela induit peut-être une phase de layout/cacul des tailles minimales
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre averti
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut
    Je comprends l'idée. En définitive, c'est le BorderPane qui produit ce comportement un peu différent des autres Pane. En effet, suite à ce que tu as écrit, j'ai repris le code qui ne fonctionne pas, et j'ai remplacé le BorderPane par VBox par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    			initGrille(); // construction de grillePane
    			VBox root = new VBox();
    			root.getChildren().add(grillePane);		
     
    			Scene scene = new Scene(root);
    			primaryStage.setScene(scene);
    			primaryStage.show();
    Et là pas de problème ! Ca donne tout de suite ce que je souhaite ! Tout s'est redimensionné automatiquement en fonction du contenu de la grille ! C'est bon à savoir.
    Merci beaucoup

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Vi BorderPane a 5 propriétés en fonction des 5 emplacements qu'on peut utiliser et donc ne se base pas trop sur le contenu de la liste children (je l'ai découvert hier en allant chercher le code source pour voir ce que faisait le constructeur). Les autres gestionnaires semblent être pour la plupart plus simples et se baser directement sur le contenu de la liste children. J'ai qq fois aussi des soucis avec des trucs qui n'ont pas forcement la taille escomptée dans BorderPane et c'est pour ça que je ne suis pas vraiment fan du fait que Gluon en ait fait la classe mère de leur View dans leur API mobile.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Swing]JTable- Dimensionner les colonnes
    Par loutfi dans le forum Composants
    Réponses: 12
    Dernier message: 01/07/2011, 08h50
  2. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29
  3. Dimensionnement du serveur ?
    Par foste dans le forum Access
    Réponses: 5
    Dernier message: 21/05/2003, 13h22
  4. Plusieurs scenes
    Par logramme dans le forum DirectX
    Réponses: 2
    Dernier message: 11/08/2002, 14h02
  5. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo