TornadoFX cómo enlazar Node style (o styleClass) a una propiedad?

Considere el siguiente ejemplo:

class MainView : View("Example") { val someBooleanProperty: SimpleBooleanProperty = SimpleBooleanProperty(true) override val root = borderpane { paddingAll = 20.0 center = button("Change bg color") { action { // let's assume that new someBooleanProperty value is updated // from some API after button clicked // so changing style of the borderpane in action block // of the button is not the solution someBooleanProperty.value = !someBooleanProperty.value } } } } class Styles : Stylesheet() { companion object { val networking by cssclass() val green by cssclass() } init { networking { backgroundColor += Color.RED } green { backgroundColor += Color.GREEN } } } 

¿Cómo puedo cambiar dinámicamente el color de background del borderpane function de someBooleanProperty de someBooleanProperty (por ejemplo, ROJO cuando es true y VERDE cuando es false )? ¿Hay posibilidad de vincular la class CSS a una propiedad? ¿Hay alguna solución para hacer eso sin usar CSS (es decir, dentro de bloque de style , etc.)

Si desea alternar una class (agregar o eliminar una class basada en una propiedad booleana), puede usar la function Node.toggleClass(CssRule, ObservableValue<Boolean>) .

 val someBooleanProperty = SimpleBooleanProperty(true) ... borderpane { toggleClass(Styles.networking, someBooleanProperty) toggleClass(Styles.green, someBooleanProperty.not()) } 

Si, por otro lado, desea vincularse a un valor de class cambiante, puede usar la function Node.bindClass(ObservableValue<CssRule>) .

 val someClassyProperty = SimpleObjectProperty(Styles.networking) ... borderpane { bindClass(someClassyProperty) } 

A continuación, puede configurar la class a lo que desee.

  • Desplazamiento suave en JavaFX TableView
  • Cómo instalar un controller de clics en una vista de list dinámica (en tornadofx)
  • En TornadoFX, ¿cómo puedo hacer que una propiedad cambie cuando cambian otras properties?
  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • La compilation de Gradle no puede encontrar tornadofx en Linux
  • En TornadoFX, ¿cómo puedo separar layouts en diferentes classs y luego usarlos en el generador?
  • Tornadofx tableview sincroniza dos tablas
  • Crea una vista arbitraria
  • Enlace de un model de dominio con campos anulables en ItemViewModel
  • Cómo configurar una aplicación Gluon con Kotlin y Tornado FX
  • ¿Cómo agregar leyenda secundaria al gráfico JavaFX?