Comment faire une animation avec les CSS dans JavaFX?
Je veux changer le style de Node
en changeant de style de classe.
Button button = new Button();
button.getStyleClass().add("class1")
button.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
button.getStyleClass().add("class2");
}
});
Est-il possible de changer de style, progressivement, pour faire quelque chose comme une transition?
en plus de votre question: Pourquoi ne pas vous rendre l'utilisation de la fantaisie Lambda annotation dans votre samplecode? Au lieu de la (nouvelle Eventhan...) il suffit d'écrire: mouseEvent -> bouton.getStyleClass().add("classe 2"). Fantaisie?
OriginalL'auteur Eugene | 2013-07-16
Vous devez vous connecter pour publier un commentaire.
Oui.
Vous aurez besoin d'utiliser setStyle plutôt que des classes de style, parce que les classes vont être statique des choses définies dans une feuille de style css. Il n'y a pas de soutien direct dans JavaFX css pour l'animation. Vous devez effectuer les étapes de l'animation dans du code Java pour modifier le style css.
Que je n'avais vraiment recommander cette méthode lorsque vous souhaitez utiliser les css pour effectuer la transition car il n'existe pas de correspondant des Api Java facilement disponibles.
Pour gérer l'animation, vous pouvez utiliser la norme javafx animation Timeline de manipuler les propriétés de la feuille de style css propriété dépend.
Par exemple, de lier votre propriété de style à la chaîne. Ensuite varier le composant que vous souhaitez modifier (dans ce cas, le colorStringProperty) dans un montage.
Ici est un sample qui clignote sur un bouton à l'aide de css avec une transition de couleur progressive de la couleur de base du gris au rouge lorsqu'il est pressé.
OriginalL'auteur jewelsea
JavaFX2 prend en charge les transitions. Si vous n'avez pas besoin pour faire de votre animation étape par étape.
Ont un coup d'oeil à ceci:
http://docs.oracle.com/javafx/2/animations/basics.htm#CJAJJAGI
Je sais. Jewelsea mentionné, que JavaFX ne supporte pas les animations CSS et l'on aurait besoin pour accomplir la seule animation par étapes. Je voulais juste préciser que ce n'est pas nécessaire si vous utilisez des transitions.
OriginalL'auteur Franz Deschler