web-dev-qa-db-fra.com

JavaFX 8 - Positionnement du centre vertical du texte de HBox

J'ai du mal à positionner le texte dans une HBox. Je suis en mesure de définir l'alignement horizontal du texte, mais je ne suis pas en mesure de définir l'alignement vertical du texte. J'essaie de définir le texte dans le centre vertical de la Hbox, mais il apparaît en haut.

Toute aide serait très appréciée.

// Create The Updates Progress Bar At The Bottom Of The Window
HBox checkUpdatesBar = new HBox();
checkUpdatesBar.setId("checkUpdatesBar");
checkUpdatesBar.setPrefSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT);
checkUpdatesBar.setMinSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT);
checkUpdatesBar.setMaxSize(CHECK_PANE_WIDTH, CHECK_PANE_HEIGHT);

// Create The 'Check For Updates...' Text
Text checkForUpdates = new Text();
checkForUpdates.setFont(Font.font("Arial Black", FontWeight.BLACK, 15));
checkForUpdates.setWrappingWidth(CHECK_PANE_WIDTH / 2.8);
checkForUpdates.setFill(Color.WHITE);
checkForUpdates.setTextAlignment(TextAlignment.CENTER);
checkForUpdates.setText("Checking For Updates ...".toUpperCase());

checkUpdatesBar.getChildren().add(checkForUpdates);

Mon code produit ce qui suit: http://puu.sh/ccEkp/41a26038a4.png

J'aime mon positionnement horizontal. Je sais que ce n'est pas au milieu parce que je l'ai défini de cette façon. Cependant, je me soucie juste du positionnement vertical .

J'ai essayé ce qui suit séparément:

checkForUpdates.setLayoutY(20);
checkForUpdates.setY(20);

J'ai choisi le nombre 20 parce que je voulais déplacer le texte de 20 pixels du haut de la HBox. J'ai calculé cette valeur dans Photoshop. Bien qu'il existe une meilleure façon de régler le texte au centre vertical de la HBox, veuillez m'éclairer.

Merci encore pour toute l'aide!

16
Sameer

Si vous souhaitez simplement positionner le texte au centre du HBox, vous pouvez utiliser le alignment property du HBox pour le faire.

Définissez l'alignement sur CENTER_LEFT, pour placer les enfants, à partir du CENTRE des HBox's espace vertical

checkUpdatesBar.setAlignment(Pos.CENTER_LEFT);
38
ItachiUchiha

Si vous utilisez SceneBuilder, sélectionnez votre HBox et dans la section Inspecteur, changez le

Propriétés: Node: Alignement

valeur à CENTER_LEFT:

enter image description here

6
Damien