выровнять текстовое поле по центру в JavaFX с помощью CSS

Я знаю, что должен установить -fx-text-alignment: center;, чтобы получить текстовое поле с выравниванием по центру.

#txtFaContent
{
    -fx-text-alignment: center;
}

где txtFaContent является идентификатором моего текстового поля (а также именем его переменной внутри контроллера). Но это никак не влияет на выравнивание текста моего текстового поля (я играл с правым/левым/центром, но безуспешно).

Я ничего не пропустил?


person Joseph_Marzbani    schedule 19.06.2020    source источник


Ответы (1)


Добавьте класс стиля в свой TextArea.text:

TextArea textArea = new TextArea();
textArea.getStyleClass().add("centered-text-area");

Добавьте .text в свой CSS:

.centered-text-area .text {
  -fx-text-alignment: center;
}
person Cem Ikta    schedule 19.06.2020
comment
текст является подструктурой текстовой области? Я не смог найти его в справочном руководстве Oracle по CSS. - person Joseph_Marzbani; 19.06.2020
comment
TextArea имеет все свойства TextInputControl и множество унаследованных свойств других элементов управления. См. Справочник по CSS › Наследование: docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/ - person Cem Ikta; 19.06.2020
comment
Я читал эту ссылку весь день. Но извините, я до сих пор не могу понять, как этот .text связан с текстовой областью. Я знаю, что TextArea наследуется от других классов (TextInputControl, ScrollPane, Region, Pane, Node и Parent); но ни один из этих классов не имеет ничего общего с классом Text! это моя проблема - person Joseph_Marzbani; 20.06.2020
comment
Наследование в CSS: docs. oracle.com/javase/8/javafx/api/javafx/scene/doc-files/ CSS также предусматривает наследование определенных свойств по умолчанию... и Следующие свойства наследуются по умолчанию...: javafx .scene.Node, javafx.scene.text.Text, javafx.scene.text.Font. - person Cem Ikta; 20.06.2020