2014-10-15 2 views
7

У меня очень сложное временное позиционирование Текст в HBox. Я могу установить горизонтальное выравнивание текста, но я не могу установить вертикальное выравнивание текста. Я пытаюсь установить текст в вертикальном центре Hbox, однако он появляется вверху.JavaFX 8 - Позиционирование текста Вертикальный центр 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, потому что я хотел, чтобы переместить текст на 20 пикселей вниз от верхней части HBox. Я вычислил это значение в Photoshop. Хотя, если есть лучший способ установить текст в вертикальный центр HBox, пожалуйста, просветите меня.

Еще раз спасибо за помощь!

ответ

23

Если вы хотите разместить текст в центре HBox, вы можете использовать alignment propertyHBox, чтобы сделать это.

Установите выравнивание в CENTER_LEFT, чтобы разместить ребенок, начиная для ЦЕНТРА вертикального пространства HBOX в

checkUpdatesBar.setAlignment(Pos.CENTER_LEFT); 
4

Если вы используете SceneBuilder, выберите HBox и в разделе Inspector, измените

Свойства: Узел: Выравнивание

значение CENTER_LEFT:

enter image description here