En TornadoFX, ¿cómo puedo separar layouts en diferentes classs y luego usarlos en el generador?

Por ejemplo, quiero tener un TabPane, pero quiero tener tabs cada una en su class por separado. ¿Hay alguna manera de hacer que esto funcione con el constructor? Quiero hacer algo como esto:

tabpane { MyFirstTab() MySecondTab() etc. } 

En general, agrega el nodo raíz desde otra View con el command add :

 add(SomeView::class) 

También puede inyectar una View y agregarla:

 val someView: SomeView by inject() override val root: borderpane { center { add(someView) } } 

add es lo mismo que hacer this += someView . Lo que sucede aquí es que el marco encuentra el nodo root de la Vista y lo agrega a la propiedad secundaria del Nodo padre. También conoce contenedores especiales como el BorderPane , por lo que hace lo correcto cuando agrega algo dentro del generador del center , etc.

El TabPane , sin embargo, toma instancias de Tab , que no son nodos. Debe agregar la pestaña usando el generador de tab y asignarle algún contenido. Los constructores son lo suficientemente inteligentes como para comprender que si add dentro de una pestaña, debe asignar a la propiedad de content de la pestaña. Por lo tanto, puedes escribir:

 tab("My First Tab") { add(MyFirstTab::class) } 

O si ya tiene una instancia del contenido que le gustaría asignar:

 tab("My First Tab") { add(myFirstTab) } 

La class MyFirstTab debe ser una View o Fragment .

  • Cómo instalar un controller de clics en una vista de list dinámica (en tornadofx)
  • Cómo crear una pantalla de inicio en tornadofx
  • Cómo configurar una aplicación Gluon con Kotlin y Tornado FX
  • En TornadoFX, ¿cómo puedo vincular las properties de BigDecimal a otra propiedad de BigDecimal usando objectBinding?
  • Enlace de un model de dominio con campos anulables en ItemViewModel
  • Tornadofx - Cómo pasar el parámetro a Fragment en cada instancia
  • Cómo inyectar ItemViewModel en tornadoFx
  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • El elemento TornadoFx ItemViewModel es nulo
  • TornadoFX cómo agregar validation al editar TableView
  • TornadoFX con TestFX cierra la vista después de cada TestCase