Способ настройки свойств PrimaryStage или Scene в TornadoFX

Я новичок в tornadoFX, и я не знаю, как настроить свойства PrimaryStage или Scene, такие как высота сцены или ширина или мода PrimaryStage. Пожалуйста, помогите мне.

ОБНОВИТЬ

Я хочу установить высоту и ширину сцены, посмотрите на этот пример:

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")) } } 

Если вы не хотите, чтобы основной вид определял начальный размер сцены, вы можете переопределить App.start и настроить размеры основного этапа, что еще раз будет определять размеры сцены:

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

Чтобы сделать это еще проще, в TornadoFX 1.5.3 будет функция, позволяющая самостоятельно создавать сцену для основного вида:

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

Конечный результат будет таким же, поэтому вы можете просто сохранить код в первом примере.

Вы обязательно должны проверить руководство TornadoFX . Это отличный ресурс для начала работы в TornadoFX.

Чтобы ответить на ваш вопрос, вы можете установить размер в корне представления. Это должно делать то, что вы хотите (используя шаблон построителя 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") } } } 

Другой вариант – использовать безопасные таблицы стилей :

 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 } } } 

Преимущество безопасного стиля стилей заключается в том, что вы можете использовать разные блоки (вы можете установить так же легко, как prefHeight = 10.cm или prefWidth = 5.inches ). Он может в принципе делать все, что может сделать CSS, но гораздо удобнее, мощнее и (как следует из названия) типа safe.

Отказ от ответственности: Я занимался проектированием и созданием системы безопасных стилей типа TornadoFX.

Intereting Posts
Как скомпилировать код Kotlin-JS с сопрограммами? как получить Array json в kotlin от url Вертикальная вертикальная (Vertical) Vert.x конфигурация JSON / YAML (предпочтительнее для каждой среды) Создать произвольное представление Проблемы с Observable.zip Как использовать библиотеку kmongo для оператора slice Kotlin: Коллекция не имеет ни общего типа, ни OneToMany.targetEntity () Обработка аннотации Kotlin: возможно ли генерировать метод расширения? Kotlin: 'val' по второму параметру конструктора не допускается Почему этот способ случайного создания графика несправедлив? Kotlin – общий параметр в List – сочетание Java и Kotlin Mockito с тестированием асинхронного тестирования Kotlin Модернизация не удается опубликовать на samsung s3 версии android 4.0.4 в то время как на данных Сокращенный синтаксис для генерации метода toString () в Котлине (для не-данных классов) Общий код между сервером Kotlin и клиентскими проектами с использованием Gradle