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
- java.lang.ClassNotFoundException: no encontró la class "com.my.app.example.Main" en la ruta: DexPathList
- TornadoFX envuelve las classs de dominio en ItemViewModel
- TornadoFX: Type-Safe CSS con otras bibliotecas
- Context de reinicio de JavaFX
- Cómo inyectar ItemViewModel en tornadoFx
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")) } }
- Columnas de tabla dinámica
- El text de la label no se actualiza aunque el hilo de la interfaz de usuario parece responder
- Cómo ejecutar tornado fx hello world con java 7
- Cómo cambiar la vista en TornadoFx
- Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
- Dibujando líneas desde ViewModel TornadoFX
- Tornadofx - controlando el object de la fila de la vista de tabla mientras construye
- ¿Cuál es la mejor práctica para crear un componente de IU personalizado en tornadofx?
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.
- Compatibilidad de Kotlin con @ColorInt Java Annotation
- ¿Por qué la verificación de igualdad referencel devuelve verdadero cuando la reference es diferente?