JavaFX 8 - 定位文本的 HBox 垂直中心

2022-09-02 11:29:08

我在HBox中定位文本非常困难。我可以设置文本的水平对齐方式,但无法设置文本的垂直对齐方式。我正在尝试将文本设置为Hbox的垂直中心,但是它出现在顶部。

任何帮助将不胜感激。

// 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);

我的代码生成以下内容:http://puu.sh/ccEkp/41a26038a4.png

我喜欢我的水平定位。我知道它不是在中间,因为我把它设置为那样。但是,我只关心垂直定位

我分别尝试了以下方法:

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

我选择了数字 20,因为我想将文本从 HBox 的顶部向下移动 20 像素。我在Photoshop中计算了这个值。虽然如果有更好的方法将文本设置为HBox的垂直中心,请启发我。

再次感谢所有的帮助!


答案 1

如果您只想将文本放在 的中心,则可以使用 的 来执行此操作。HBoxalignment propertyHBox

将对齐方式设置为 ,以放置子项,从 HBox 垂直空间的中心开始CENTER_LEFT

checkUpdatesBar.setAlignment(Pos.CENTER_LEFT);

答案 2

如果您使用的是 SceneBuilder,请选择您的 HBox,然后在“检查器”部分中,更改

属性 : 节点 : 对齐

要CENTER_LEFT的值:

enter image description here


推荐