A fluente e bindings API ajudam a construir bind expressões quando mais de uma propriedade precisa participar em um binding ou quando é necessário para executar algum tipo de cálculo ou conversão.
Por exemplo, a seguinte bind expressão mostra a rotação de um ângulo do StackPane que gira de 0 a 360 graus. A propriedade text é uma String, e propriedade rotate é um double.
O método binding asString() converte double para String, formatando o número com um simples ponto ao lado direito do decimal.
text2.textProperty().bind(stackPane.rotateProperty().asString(“%.1f”));
Vamos atualizar a propriedade stroke do text2 (é uma cor) dependendo se a animação está executando ou não. Construímos uma expressão bind com When baseada na condição ternária.
Isso define a cor do traçado para verde quando a animação está executando e vermelho quando a animação está parada.
text2.strokeProperty().bind(new When(rotate.statusProperty()
.isEqualTo(Animation.Status.RUNNING))
.then(Color.GREEN).otherwise(Color.RED));
A propriedade text de text2 está no grupo do change listener que é amarrado ao estado da propriedade de animação.
Veja que na imagem que quando a animação começa a mensagem está na cor verde e quando está parada fica na cor vermelha.
Fonte: The Definitive Guide to Modern Java Clients with JavaFX
Deixe um comentário