Выравнивание текста в TextFlow по центру — JavaFX FXML и CSS

На данный момент у меня есть фрагмент текста, определенный с помощью Text в моем FXML. Он также расположен внутри TextFlow, который находится внутри ScrollPane. Я попытался выровнять текст по центру в самом FXML и в css, но до сих пор не работает. Вот FXML

<ScrollPane fx:id = "scrollPane">
     <content>
         <TextFlow styleClass="txtFlow">
               <children>
                    <Text styleClass="h1" text="Title" textAlignment="CENTER"/>
                    <Text styleClass="h2" text="&#10;Subtitle"/>
              </children>
          </TextFlow>
    </content>
</ScrollPane>

А вот и ССС

.h1{
-fx-font-family: "Helvetica";
-fx-font-size: 50px;
-fx-fill: #147cb0;
-fx-underline: true;
-fx-alignment: center; }

person Josh Beaver    schedule 01.05.2015    source источник


Ответы (2)


Для выравнивания текстов в TextFlow используйте

<TextFlow textAlignment="CENTER"> .... </TextFlow>

Чтобы выровнять содержимое ScrollPane, используйте

<ScrollPane fx:id = "scrollPane" fitToWidth="true"> .... </ScrollPane>
person Uluk Biy    schedule 01.05.2015
comment
Спасибо, но что, если я хочу выровнять только один текстовый элемент по центру? - person Josh Beaver; 01.05.2015
comment
@JoshBeaver, я не думаю, что это возможно. Используйте другой отдельный текст или TextFlow для заголовка и выровняйте его. - person Uluk Biy; 04.05.2015

Добавляя к ответу @Uluk, вы также можете добиться этого с помощью css, используя стиль в файле TextFlow.

<TextFlow style="-fx-text-alignment: center;">

Вы также можете получить желаемый эффект, используя файл css и styleclass в нем.

<TextFlow styleClass="txtFlow">

и в файле css как,

.txtFlow {
    -fx-text-alignment: center;
}
person ItachiUchiha    schedule 01.05.2015