Je souhaite modifier la couleur de la police dans TextField. J'ai trouvé -fx-background-color
, -fx-border-color
pour modifier la couleur de l'arrière-plan et de la bordure, mais rien pour le texte. des idées? merci d'avance
Les styles CSS pour les contrôles de saisie de texte tels que TextField pour JavaFX 8 sont définis dans le fichier modena.css stylesheet, comme indiqué ci-dessous. Créez une feuille de style CSS personnalisée et modifiez les couleurs à votre guise. Utilisez le guide de référence CSS si vous avez besoin d’aide pour comprendre la syntaxe, les attributs et les valeurs disponibles.
.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;
}
Bien que l'utilisation d'une feuille de style externe soit une méthode recommandée pour le style, vous pouvez utiliser un style en ligne, en utilisant l'une des méthodes suivantes:
textField.setStyle("-fx-text-inner-color: red;");
Définir le -fx-text-fill
fonctionne pour moi.
Voir ci-dessous:
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;");
}
Si vous concevez votre application Javafx avec SceneBuilder
, utilisez -fx-text-fill
(si non disponible comme option, écrivez-la dans la zone de saisie du style) comme style et donnez la couleur souhaitée, cela modifiera la couleur du texte de votre Textfield
.
Je suis venu ici pour le même problème et l'ai résolu de cette façon.