Вы на правильном пути. Предпочтительный размер корневого компонента станет исходным размером окна. Кроме того, вы можете настроить минимальный размер окна, но вы не можете сделать это в конструкторе UIComponent, поскольку он создается до фактического окна, в котором он будет отображаться. По этой причине обратный вызов onDock
является Хорошее место для настройки окна с setWindowMinSize
. Если это главное окно приложения, тем не менее, еще лучшей стратегией было бы переопределить start
и настроить свойства minWidth
и minHeigh
для Stage
(который является окном).
Стоит отметить, что вспомогательная функция setWindowMinSize
доступна только в том случае, если вы переопределяете onDock
в своем UIComponent, поскольку она определена как ярлык для установки минимального размера currentStage для UIComponent. Если вы переопределите start
, вам придется напрямую манипулировать свойствами, например:
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)
}
}
Вы также можете установить isResizable = false
в сцене / окне в функции start
, если хотите предотвратить изменение размера.