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 cambiar la vista en TornadoFx
  • TornadoFX ¿Cómo crear MDI con una list de models de windows hijas?
  • No se puede hacer que el nodo se centre en un StackPane con TornadoFX
  • Tornadofx tableview sincroniza dos tablas
  • ¿Cómo cancelar la suscripción a events en TornadoFX?
  • Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
  • Cómo implementar TornadoFX WebEngine Callback en Kotlin
  • TornadoFX - eliminar elemento con ContextMenu hacer clic derecho
  • Cómo ejecutar tornado fx hello world con java 7
  • Tornadofx - Cómo pasar el parámetro a Fragment en cada instancia
  • TornadoFX ItemViewModel se actualiza si se cambia el object de respaldo que no expone las properties de JavaFX