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

时间:2014-10-15 01:41:07

标签: java javafx javafx-8

我很难将文本放在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的垂直中心,请赐教。

再次感谢您的帮助!

2 个答案:

答案 0 :(得分:35)

如果您只想将文字放在HBox的中心,可以使用alignment property的{​​{1}}来完成此操作。

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

CENTER_LEFT

答案 1 :(得分:5)

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

  

属性:节点:对齐

值为CENTER_LEFT:

enter image description here