pseudo-classes javafx 2 et css: définition des attributs de survol dans la méthode setStyle
J'ai une Scène avec ce code:
scene.getStylesheets().add("packagename/testcss.css");
Et mon testcss.css est:
.button {
-fx-background-color: #DDFFA4;
}
.button:hover {
-fx-background-color: #9ACD32;
}
Ce que je atteindre est la belle effet aka hover quand dans les applications web.
QUESTION
Comment puis-je obtenir le même effet, mais sans fichier css, par le biais de la méthode setStyle de mon Bouton?
Le problème est que setStyle accepte la définition de style et de laisser le sélecteur.
button.setStyle("-fx-background-color: #DDFFA4;");
Le sélecteur, dans mon hover est le cas de la pseudo-classe:
.button:hover
mais où suis-je censé le mettre?
En outre, la javadoc est explicite dans l'exclusion de la sélection de la méthode setStyle argument:
Noter que, comme l'attribut de style HTML, cette variable contient le style
les propriétés et les valeurs et non pas le sélecteur partie d'une règle de style.
source d'informationauteur AgostinoX
Vous devez vous connecter pour publier un commentaire.
Comme vous le notez dans votre question, que de JavaFX 2.2, le css pseudoclasses ne sont pas exposés dans le cadre de l'API publique que vous pouvez utiliser pour le style de manipulation à l'intérieur du code Java.
Si vous souhaitez modifier les attributs de style à partir du code Java sans utiliser une feuille de style, vous devez définir les styles basés sur des événements ou des changelisteners. Il ya un couple d'options dans l'exemple ci-dessous.
Que je n'avais vraiment faire dans le code plutôt que d'une feuille de style si les couleurs nécessaires pour être vraiment dynamique, faisant usage de feuilles de style avec des couleurs et des styles problématique, ou si il y avait une aversion à l'aide de feuilles de style css.
En JavaFX 8 il y a une API qui vous permet (si vous le souhaitez) à manipuler Région des couleurs d'arrière-plan, sans l'utilisation de CSS.
Exemple de programme de sortie (avec le bouton de mise à Jour a plané):