11
votes

Comment spécifier un pourcentage de largeur dans JavaFX 2 en utilisant FXML?

Je cherche un moyen de dire définir une taille maxwidth à 80% dans FXML.

Tout comme dans le développement Web.

Mais cela ne:

Je sais que dans la droite Javafx2 non-FXML, vous pouvez créer des intégre? Quelle est la meilleure façon de faire cela en dehors du code dans FMXL?

merci!

riley


0 commentaires

3 Réponses :


28
votes

Je ne suis pas sûr de pouvoir. Vous devez utiliser le composant gridpane . Dans ce composant, vous pouvez spécifier des contraintes de lignes et de colonnes et dans ces contraintes, vous pouvez spécifier une largeur en pourcentage. Par exemple: xxx

Ce code définit un gridpane avec une première colonne avec une largeur de 80%. Le titledpane est défini dans la première cellule de la première colonne de ce Gridpane et peut (car vous devez vous assurer que les contraintes de largeur du Titledpane < / Code> Faites correspondre vos besoins) Occupérez 80% de la largeur du Gridpane .

Veuillez noter que j'ai supprimé toutes les informations non pertinentes pour votre question. À propos, l'outil de constructeur de scènes d'Oracle est très utile pour définir la mise en page complexe FXML.


2 commentaires

Comment définissez-vous les contraintes de colonne à l'intérieur de SceneBuilder? J'utilise Scene Builder 8.1.1, j'ai une gridpane avec deux colonnes et je ne trouve pas de contraintes de colonne ni de largeur en pourcentage nulle part.


@skrilmps dans le panneau de contenu SceneBuilder, cliquez à l'intérieur de la gridpane. Les trucs d'onglet apparaîtront au-dessus et au-dessous de chaque colonne et à gauche et à droite de chaque rangée. Dans le panneau d'inspecteur à droite, avec la mise en page étendue, vous verrez des informations de colonne de colonnes.



1
votes

Vous pouvez le simuler - exemple de base qui simule 50% pour deux colonnes dans une boîte. Vous pouvez ajouter des vitres factices pour obtenir les tiers, etc.

    HBox {
        VBox {
            static hgrow : "ALWAYS",
            Label {
                text : "Privacy",
                alignment : "CENTER",
                styleClass : ["h2", "heading"]
            }
        },
        VBox {
            static hgrow : "ALWAYS",
            Label {
                text : "Messages",
                alignment : "CENTER",
                styleClass : ["h2", "heading"]
            },
            Label {text:""}
        }
    }


1 commentaires

Je noter que l'utilisation de "parfois" et de fitzing avec les valeurs de largeur préfabriquées / min / max peut également être utile. J'adorerais toujours% valeurs pour le réel.



15
votes

Il semble que beaucoup de réponses ont déjà été fournis et ils doivent travailler. Cependant strong>, il y a un moyen de pourcentages fixés:

<VBox fx:id="VBSidebar" prefWidth="${hroot.width*0.15}" prefHeight="${hroot.height}"> more elements.. </VBox>


0 commentaires