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.

  • En TornadoFX, ¿cómo puedo hacer que una propiedad cambie cuando cambian otras properties?
  • Cómo instalar un controller de clics en una vista de list dinámica (en tornadofx)
  • Enlace de un model de dominio con campos anulables en ItemViewModel
  • TornadoFX cómo agregar validation al editar TableView
  • TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
  • TornadoFX con TestFX cierra la vista después de cada TestCase
  • tornadoFX togglebutton no tiene propiedad de text
  • Cómo mostrar datos usando la vista de tree de TornadoFX
  • TornadoFX - Creación de un layout MVP
  • Cómo cambiar la vista en TornadoFx
  • ¿Cuál es la mejor práctica para crear un componente de IU personalizado en tornadofx?