2017-10-13 5 views
1

CSS

Classe principale bascule commutateur:Est-il possible de contrôler les valeurs des champs non-couleur par consultation?

.toggle-switch { 
    radius: 16; 

    thumb-area-background-color: rgba(255, 255, 255, 1); 
    thumb-area-border-width: 2; 
    thumb-area-border-color: #d9d9d9; 
} 

et le pouce zone classe enfant :

.thumb-area { 
    -fx-background-radius: radius; 
    -fx-border-radius: radius; 

    -fx-background-color: thumb-area-background-color; 
    -fx-border-width: thumb-area-border-width; 
    -fx-border-color: thumb-area-border-color; 
} 

Les champs -background-color pouce zone и thumb-area-border-color, responsable de la couleur, changer parfaitement du code et sont traités sans erreur:

toggleSwitch.setStyle("thumb-background-color: " + getRGBAString(color)); 
toggleSwitch.setStyle("thumb-area-background-color: " + getRGBAString(color)); 

Mais les champs rayon и -zone-largeur frontière pouce, ne sont pas traitées! Lorsque je démarre le programme, la console affiche:

WARNING: Caught 'java.lang.ClassCastException: java.lang.Double cannot be cast to com.sun.javafx.css.Size' while converting value for '-fx-background-radius' from rule '*.thumb-area' in stylesheet file:/... 
*date* javafx.scene.CssStyleHelper calculateValue 

WARNING: Caught 'java.lang.ClassCastException: java.lang.Double cannot be cast to com.sun.javafx.css.Size' while converting value for '-fx-border-radius' from rule '*.thumb-area' in stylesheet file:/... 
*date* javafx.scene.CssStyleHelper calculateValue 

WARNING: Caught 'java.lang.ClassCastException: java.lang.Double cannot be cast to com.sun.javafx.css.Size' while converting value for '-fx-border-width' from rule '*.thumb-area' in stylesheet file:/... 
*date* javafx.scene.CssStyleHelper calculateValue 

Le chemin vers le fichier et la date sont supprimés.

Est-il possible de contrôler les valeurs des champs non-couleur avec -up regardé ou s'il n'y a pas une telle option, comment mieux changer ces valeurs par programmation à partir du code sans écraser champs css (lorsqu'il est utilisé par exemple setStyle pour thumbArea toutes les valeurs de classe css pouce zone sont perdus)

La façon de faire tous les champs par programmation en utilisant setSt ylene correspond pas à.

+0

Si vous changez «rayon: 16» à «rayon: 16 16 16 16», obtenez-vous la même erreur ou une erreur différente? – MMAdams

+0

Cela n'aide pas + dans mon exemple, j'ai écrit que l'erreur se produit également en essayant de définir la largeur. –

Répondre

0

Il semble que radius soit stocké en double au lieu d'un format, ce qui est attendu par -fx-background-radius. Essayez radius: 16px; et voyez si cela fonctionne mieux?

+0

** Déjà essayé **, cela n'aide pas. –