Forma de configurar las properties de PrimaryStage o Scene en TornadoFX

Soy nuevo en tornadoFX y no sé cómo configurar PrimaryStage o las properties de Escena como la altura o el ancho de la Escena o la modalidad de PrimaryStage. Por favor, ayúdame.

ACTUALIZAR

Quiero configurar la altura y el ancho de la escena, mira este ejemplo:

dependencies { compile 'no.tornado:tornadofx:1.5.2' compile "org.jetbrains.kotlin:kotlin-stdlib:1.0.3" } 

 import javafx.scene.control.Label import javafx.scene.layout.VBox import tornadofx.App import tornadofx.FX import tornadofx.View class Main : App() { override val primaryView = MyView::class init { // this two lines have error ( Val cannot be reassigned. ) FX.primaryStage.scene.height = 600.0 FX.primaryStage.scene.width = 800.0 // or this line causes this exception ( java.lang.NoSuchMethodException ) FX.primaryStage.isResizable = false } } class MyView : View() { override val root = VBox() init { root.children.add(Label("My label")) } } 

Si no desea permitir que la vista principal dicte el tamaño de la escena inicial, puede anular el App.start y configurar las dimensiones de la etapa primaria, que de nuevo dictará las dimensiones de la escena:

 override fun start(stage: Stage) { super.start(stage) stage.width = 800.0 stage.height = 600.0 } 

Para hacer esto aún más simple, habrá una function en TornadoFX 1.5.3 que le permitirá crear la Escena para la vista principal usted mismo:

 override fun createPrimaryScene(view: View) = Scene(view.root, 800.0, 600.0) 

El resultado final será el mismo, así que puedes save el código en el primer ejemplo.

Definitivamente deberías consultar la Guía TornadoFX . Es un gran recurso para comenzar en TornadoFX.

Para responder a su pregunta, puede establecer el tamaño en la raíz de la vista. Esto debería hacer lo que quiera (usando el patrón de constructor TornadoFX):

 class Main : App() { override val primaryView = MyView::class } class MyView : View() { override val root = VBox() init { with (root) { prefWidth = 800.0 prefHeight = 600.0 label("My label") } } } 

Otra opción es usar hojas de estilo seguras tipo :

 class Main : App() { override val primaryView = MyView::class init { importStylesheet(Style::class) } } class MyView : View() { override val root = VBox() init { with (root) { label("My label") } } } class Style : Stylesheet() { init { root { prefHeight = 600.px prefWidth = 800.px } } } 

La ventaja de la hoja de estilo de security del tipo es que puede usar unidades diferentes (puede establecer con la misma facilidad decir prefHeight = 10.cm o prefWidth = 5.inches ). Básicamente puede hacer todo lo que CSS puede hacer, pero es mucho más conveniente, poderoso y (como su nombre lo sugiere) tipo seguro.

Descargo de responsabilidad: participé en el layout y construcción del sistema de hojas de estilo seguro para TornadoFX.

  • ¿Cómo agregar leyenda secundaria al gráfico JavaFX?
  • Tornadofx - controlando el object de la fila de la vista de tabla mientras construye
  • tornadoFX togglebutton no tiene propiedad de text
  • Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
  • TornadoFX: permite copyr un elemento de una vista de list al portapapeles
  • Cómo configurar una aplicación Gluon con Kotlin y Tornado FX
  • TornadoFX ItemViewModel se actualiza si se cambia el object de respaldo que no expone las properties de JavaFX
  • TornadoFX: Type-Safe CSS con otras bibliotecas
  • TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
  • ¿Por qué mi escena es nula?
  • El elemento TornadoFx ItemViewModel es nulo