Estoy usando TornadoFX en mi proyecto. Tengo una vista raíz que es un borderPane . Pude encontrar setPrefSize(1200.0, 720.0) y funciona perfectamente. Sin embargo, de forma predeterminada, la ventana es redimensionable, y el usuario puede cambiar su tamaño sin ningún límite. ¿Hay alguna propiedad o método para establecer minHeight y minWidth de una ventana para que, cuando se cambie el tamaño, se detenga en esos límites?
Hasta ahora he probado estos pero ninguno de ellos parece funcionar:
override val root = borderPane { minHeight = 400.0 minWidth = 600.0 setMinSize(600.0, 400,0) setWindowMinSize(600, 400) // this throws NPE addClass(loginScreen) // I even set properties in CSS } // StyleClass loginScreen{ minWidth = 600.px minHeight = 400.px } ¿Cuál es la forma correcta de configurar minHeight y minWidth de una ventana en TornadoFX? Y una cosa más, ¿cómo deshabilito el cambio de tamaño de la ventana en TornadoFX, no hay una propiedad llamada isResizable ? PD Soy super novato en Kotlin y en TornadoFX. Acabo de empezar hoy.
Estás en el camino correcto. El tamaño preferido del componente raíz se convertirá en el tamaño inicial de la ventana. Puede configurar aún más un tamaño mínimo para la ventana, pero no puede hacerlo en el constructor de UIComponent, ya que se crea antes de la ventana real en la que se mostrará. Por esa razón, la devolución de llamada onDock es un buen lugar para configurar la ventana con setWindowMinSize . Sin embargo, si esta es la ventana principal de la aplicación, una estrategia aún mejor sería anular el start y configurar las propiedades minWidth y minHeigh para el Stage (que es una ventana).
Vale la pena señalar que la función de conveniencia setWindowMinSize solo está disponible si anula onDock en su UIComponent, ya que se define como un acceso directo para establecer el tamaño mínimo de currentStage para UIComponent. Si anula start , debe manipular las propiedades directamente, así:
class MyApp : App(MainView::class) { override fun start(stage: Stage) { with(stage) { minWidth = 600.0 minHeight = 400.0 super.start(this) } } } class MainView : View() { override val root = borderpane { setPrefSize(1200.0, 720.0) } } También puede establecer isResizable = false en el escenario/ventana en la función de start si desea evitar el cambio de tamaño.