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 cancelar la suscripción a events en TornadoFX?
  • TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
  • TornadoFX - Creación de un layout MVP
  • CellCache se representa inesperadamente en TableView con tornadoFX
  • TornadoFX filechooser
  • ¿Cómo agregar leyenda secundaria al gráfico JavaFX?
  • Tornadofx - Cómo pasar el parámetro a Fragment en cada instancia
  • java.lang.NoSuchMethodException cuando intenta ejecutar la aplicación TornadoFX
  • ¿Cómo puedo crear un encabezado de columna nested / dividido usando TornadoFx?
  • ¿Cómo llenar el ancho de la tabla disponible con columnas?
  • El text de la label no se actualiza aunque el hilo de la interfaz de usuario parece responder