web-dev-qa-db-fra.com

Comment changer la couleur du texte dans javafx TextField?

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

23
Saeed Masoumi

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;");
23
jewelsea

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;");
}
31
Martin Pfeffer

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.

0
Sushil Mankar