12
votes

Comment changez-vous la couleur de fond d'un champ de texte sans changer la frontière dans JavaFX?

J'essaie de changer la couleur de fond de mon champ de texte "Colorbox0" sur "Value0", mais il se débarrasse 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)));


1 commentaires

Wow, c'est frustrant ...


4 Réponses :


5
votes

Essayez de définir la couleur à l'aide de CSS:

TextField colorBox0;
colorBox0.setStyle("-fx-background-color: white;");


2 commentaires

Cela ne fonctionne pas. Cela change aussi les frontières. Pour tous ceux qui trouveront cette réponse.


Comme l'a découvert l'OP, en utilisant -fx-contrôle-interne-fond au lieu de -fx-fond-couleur fonctionne cependant.



7
votes

En regardant les styles Javafx par défaut (raccourcies) pour le Textfield CODE> explique un lot: xxx pré>

de sorte que l'arrière-plan est un fond en couches incluant la bordure. Cette technique est utilisée beaucoup dans tout JavaFX. Mais il est très facile de modifier une seule couleur. P>

Nous devons d'abord attribuer une nouvelle classe de style personnalisée à notre Textfield code>: p>

.custom {
  -fx-control-inner-background: orange;
}


3 commentaires

Existe-t-il un moyen de définir la couleur d'arrière-plan sur la valeur de value0 car je veux pouvoir modifier la valeur0 et changer la couleur de fond


Changement de manière programmatique Ceci réinitialisera toutes les couleurs de fond. Mais vous pouvez aussi changer les couleurs du CSS au moment de l'exécution. Par exemple, en modifiant la classe de style ou un état de pseudo classe.


J'ai utilisé une version modifiée de votre CSS pour le réparer



13
votes

J'ai trouvé que vous pouvez construire une chaîne de code CSS hors d'une chaîne et une variable en utilisant la méthode de chaîne et la méthode de sous-chaîne comme ceci: xxx


2 commentaires

Où avez-vous trouvé "-fx-control-inner-fond" de? Où est la référence officielle? Merci


Docs. oracle.com/cd/e17802_01/javafx/javafx/1.3/docs/api/...



0
votes

Solution élégante avec la traduction couleur: xxx


0 commentaires