8
votes

Définir la largeur de la scène et la hauteur

J'ai essayé de définir la largeur et la hauteur de la scène à l'extérieur du constructeur et il n'y a pas de vain. Après avoir examiné via la scène API, j'ai vu une méthode qui vous permet d'obtenir respectivement la hauteur et la largeur, mais pas une pour définir la méthode .: S (la faille de conception peut-être).

Après de nouvelles recherches, j'ai rencontré le SceneBuilder et trouvé des méthodes susceptibles de modifier la hauteur et la largeur. Cependant, je ne sais pas comment l'appliquer à un objet de scène déjà créé ou comment créer un objet SceneBuilder pouvant être utilisé à la place de l'objet Scène.


0 commentaires

3 Réponses :


14
votes

Une fois que vous avez créé scène et attribué à l'étape , vous pouvez utiliser étage.setwidth et étape.Setheight Pour changer simultanément les tailles de scène et de scène.

SceneBuilder ne peut pas être appliqué à un objet déjà créé, il ne peut être utilisé que pour la création de scène.


1 commentaires

Notez que cette réponse n'est pas la même que dans la définition de la scène la largeur ou la hauteur, car stade.setwidth () et étape.Setheight inclut la fenêtre décoration. Voir @ user 2229691 La réponse ci-dessous si cela vous importe.



2
votes

Je voulais juste poster une autre réponse pour ceux qui auraient pu avoir un problème similaire que le mien.

http://docs.oracle.com/javase/8/javafx/api/javafx/scène/ssene.html

Il y a no SetWidth () ou Setethight () , et la propriété est loadonly , mais si vous regardez xxx < / pré>

Comme vous pouvez le constater, c'est là que vous pouvez définir la hauteur et la largeur si vous en avez besoin.

pour moi, j'utilise ScènesBuilder , tout comme Vous avez décrit que vous faisiez et avez besoin de la largeur et de la hauteur de cela. Je crée des contrôles personnalisés, il était donc étrange que cela ne l'a pas fait automatiquement, c'est comment le faire si vous en avez besoin.

J'aurais pu utiliser SetWidth () / Setethight () à partir du stade aussi.


0 commentaires

3
votes

Il semble qu'il ne semble pas possible de définir la taille de la scène après sa création.

Réglage de la taille de l'étape signifie pour définir la taille de la fenêtre, qui inclut la taille de la décoration. Donc, la scène est de plus petite taille, sauf si l'étape est non décorée.

Ma solution consiste à calculer la taille de la décoration lors de l'initialisation et de l'ajouter à la taille de l'étape lors de la résolution: xxx


1 commentaires

Je pense que l'API a changé un peu depuis que cette réponse a été écrite. scène.getx () est maintenant toujours égal à initialscenex , cette réponse donnera toujours une taille de décoration de 0. Pour que cela fonctionne, je devais changer la décoration. Calcul de Stage.getwidth () - InitialWidth et Stage.Detieight () - InitialHeight . Mais après cela, cela fonctionnait parfaitement! C'est exactement la solution intelligente que je cherchais, merci!