Как изменить цвет текста в javafx TextField?

Я хочу изменить цвет шрифта в TextField. Я нашел -fx-background-color, -fx-border-color для изменения цвета фона и рамки, но ничего для текста. есть идеи? спасибо в adamce

Ответ 1

Стили CSS для элементов ввода текста, такие как TextField для JavaFX 8, определены в таблице стилей modena.css, как показано ниже. Создайте собственную таблицу стилей CSS и измените цвета по своему усмотрению. Используйте справочное руководство CSS, если вам нужна помощь в понимании синтаксиса и доступных атрибутов и значений.

.text-input {
    -fx-text-fill: -fx-text-inner-color;
    -fx-highlight-fill: derive(-fx-control-inner-background,-20%);
    -fx-highlight-text-fill: -fx-text-inner-color;
    -fx-prompt-text-fill: derive(-fx-control-inner-background,-30%);
    -fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
    -fx-background-insets: 0, 1;
    -fx-background-radius: 3, 2;
    -fx-cursor: text;
    -fx-padding: 0.333333em 0.583em 0.333333em 0.583em; /* 4 7 4 7 */
}
.text-input:focused {
    -fx-highlight-fill: -fx-accent;
    -fx-highlight-text-fill: white;
    -fx-background-color: 
        -fx-focus-color,
        -fx-control-inner-background,
        -fx-faint-focus-color,
        linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
    -fx-background-insets: -0.2, 1, -1.4, 3;
    -fx-background-radius: 3, 2, 4, 0;
    -fx-prompt-text-fill: transparent;
}

Хотя использование внешней таблицы стилей является предпочтительным способом создания стиля, вы можете использовать стиль inline, используя что-то вроде ниже:

textField.setStyle("-fx-text-inner-color: red;");

Ответ 2

Настройка -fx-text-fill работает для меня.

Увидеть ниже:

if (passed) {
    resultInfo.setText("Passed!");
    resultInfo.setStyle("-fx-text-fill: green; -fx-font-size: 16px;");
} else {
    resultInfo.setText("Failed!");
    resultInfo.setStyle("-fx-text-fill: red; -fx-font-size: 16px;");
}

Ответ 3

Если вы разрабатываете свое приложение Javafx с использованием SceneBuilder тогда используйте -fx-text-fill (если не доступно как опция, а затем напишите его в поле ввода стиля) в качестве стиля и задайте нужный цвет, он изменит цвет текста вашего Textfield.

Я пришел сюда по той же проблеме и решил ее таким образом.

Ответ 4

Есть ли другой способ изменить цвет текста в TextField? Например, метод, который позволяет вам изменить цвет, используя класс Color из javafx в качестве параметра?