tornadoFX togglebutton no tiene propiedad de text

Soy nuevo en kotlin y tornadoFX. En TornadoFX Guide, se puede build un ToggleButton con lo siguiente:

togglebutton("OFF").action { text = if (isSelected) "ON" else "OFF" } 

Pero cuando copio los mismos códigos en mi IDE, ¡hay errores!

códigos de guía copiados a mi IDE

Parece que no hay propiedad de text en togglebutton en tornadoFX?

Parece que estábamos un poco ansiosos por actualizar la guía con la nueva syntax .action , por lo que el ejemplo en la guía es realmente incorrecto. El código correcto sería:

 togglebutton("OFF") { action { text = if (isSelected) "ON" else "OFF" } } 

La razón por la que el ejemplo en la guía es incorrecto es que cuando llamas a togglebutton("OFF").action { .. } , entonces this dentro de la action {} es en realidad el contenedor que lo rodea en lugar del button.

Para las acciones que no operan en el button, la syntax corta está bien, pero si necesita manipular el button, necesita usar la syntax completa para que su código se ejecute en el context del button.

En otra nota, podría ser más idiomático crear un enlace de cadena para representar el estado del button, en lugar de actualizarlo manualmente en la callback de acción:

 togglebutton { val stateText = selectedProperty().stringBinding { if (it == true) "ON" else "OFF" } textProperty().bind(stateText) } 
  • TableView de Tornadofx usando comboBox y agregando FXEvent en los botones
  • Usar bibliotecas de UI de terceros con TornadoFX
  • Desplazamiento suave en JavaFX TableView
  • Cómo mostrar datos usando la vista de tree de TornadoFX
  • Tornadofx tableview sincroniza dos tablas
  • TornadoFx: que realiza mejor FXML o type-CSS
  • Dibujando líneas desde ViewModel TornadoFX
  • TornadoFX - eliminar elemento con ContextMenu hacer clic derecho
  • ¿Cómo cancelar la suscripción a events en TornadoFX?
  • Cómo crear una pantalla de inicio en tornadofx
  • Cómo configurar una aplicación Gluon con Kotlin y Tornado FX