Comment voulez-vous changer la couleur d'arrière-plan d'un Champ de texte sans modification de la frontière, en javafx?
Je suis en train de changer la couleur de fond de mon TextField "colorBox0" à "value0", mais il se débarrasser de la frontière.
Voici une version simplifiée de mon code:
static Paint value0 = Paint.valueOf("FFFFFF");
TextField colorBox0;
colorBox0.setBackground(new Background(new BackgroundFill(value0, CornerRadii.EMPTY, Insets.EMPTY)));
Toute aide est très appréciée
Merci
Wow, c'est frustrant...
OriginalL'auteur sazzy4o | 2014-12-30
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé que vous pouvez construire une chaîne de code css d'une ficelle et d'une variable à l'aide de la méthode de chaîne et de la chaîne de la méthode comme ceci:
OriginalL'auteur sazzy4o
À la recherche à l' (raccourcie) par défaut JavaFX styles pour la
TextField
explique beaucoup de choses:Afin que l'arrière plan est une couche de fond, y compris la frontière. Cette technique est beaucoup utilisée tout au long de JavaFX. Mais il est très facile de modifier une seule couleur.
D'abord, nous devons attribuer un nouveau style personnalisé en classe de notre
TextField
:et le fichier CSS:
Comme vous pouvez le voir, vous n'avez pas à remplacer tous les styles de la zone de texte, il suffit de remplacer que la couleur de la variable utilisée pour le fond.
Programmitically changer cela réinitialisera toutes les couleurs d'arrière-plan. Mais vous pouvez changer les couleurs par le biais de CSS au moment de l'exécution. Par exemple en changeant le style de classe ou un pseudoclass état.
J'ai utilisé une version modifiée de votre css pour le fixer
OriginalL'auteur eckig
Essayez de mettre de la couleur à l'aide de CSS:
Comme l'OP découvert, à l'aide de
-fx-control-inner-background
au lieu de-fx-background-color
fonctionne bien.OriginalL'auteur javaHunter
Solution élégante avec la couleur de la traduction:
OriginalL'auteur Jerzy Nowakowski