No se puede hacer que el nodo se centre en un StackPane con TornadoFX

Estoy intentando hacer una vista simple donde tengo un nodo de background ( por ahora, tengo un nodo de text aquí pero el nodo final será una ruta SVG ) detrás de un VBox . Estoy intentando que mi nodo de background se centre en la raíz de StackPane antes de pasar a la implementación de VBox , pero parece que no puedo centrar correctamente mi nodo.

Aquí están mis classs:

 class UserInputUI : App(InputView::class, UIStyles::class) { init { reloadStylesheetsOnFocus() } override fun start(stage: Stage) { stage.minWidth = 1024.0 stage.minHeight = 768.0 super.start(stage) } } class InputView : View() { override val root = StackPane() init { text("I wish to be centenetworking") { stackpaneConstraints { alignment = Pos.CENTER addClass(UIStyles.headerFontStyle) } } } } 

y mi class UIStyles … si es relevante.

 class UIStyles : Stylesheet() { companion object { val headerFontStyle by cssclass() private val headerFontColor = Color.BLACK } init { headerFontStyle { fontSize = 48.px } } } 

¿Hay alguna manera diferente en que se supone que debo centrar el nodo en el medio de un StackPane ? También intenté root.alignment = Pos.CENTER en la function init de InputView , pero fue en vano.

ayuda esta pobre caja

Siento que estoy haciendo algo tonto … ¿Alguna ayuda? ¡Gracias!

Intente poner la llamada super.start() antes de las llamadas configuradas minWidth/Height .

Hemos discutido esto en Slack, y creemos que puede haber una discrepancia JavaFX entre Linux y Mac / Windows, ya que su código funciona de la caja en Mac / Windows pero falla en Linux.

Cuando coloca la llamada super.start() antes de la configuration minWidth/minHeight , la escena ya se habrá creado para usted, así que creo que esa es la causa.

Un StackPane centrará por defecto sus elementos secundarios, por lo que no es necesario configurar el stackpaneConstraints . Su código también se verá mucho más limpio si usa los constructores para definir el stackpane también:

 class InputView : View() { override val root = stackpane { text("I wish to be centenetworking") } } 
  • Cómo ejecutar tornado fx hello world con java 7
  • Lanzar una aplicación TornadoFX desde (un progtwig existente) de Kotlin
  • TornadoFx: que realiza mejor FXML o type-CSS
  • Tornadofx - Cómo pasar el parámetro a Fragment en cada instancia
  • ¿Cómo puedo refactorizar una vista para permitir el filtrado de elementos vinculados a un observable ArrayList dentro de una aplicación tornadofx?
  • ¿Cómo puedo crear un encabezado de columna nested / dividido usando TornadoFx?
  • Tornadofx Javafx - Cómo volver a cargar una vista / componente
  • En TornadoFX, ¿cómo puedo hacer que una propiedad cambie cuando cambian otras properties?
  • Columnas de tabla dinámica
  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • Tornadofx - controlando el object de la fila de la vista de tabla mientras construye