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") } } 
  • TornadoFX: Type-Safe CSS con otras bibliotecas
  • ¿Cómo puedo crear un encabezado de columna nested / dividido usando TornadoFx?
  • TornadoFX: el text de la label no se actualiza
  • En TornadoFX, ¿cómo puedo separar layouts en diferentes classs y luego usarlos en el generador?
  • ¿Cómo puedo refactorizar una vista para permitir el filtrado de elementos vinculados a un observable ArrayList dentro de una aplicación tornadofx?
  • La compilation de Gradle no puede encontrar tornadofx en Linux
  • TornadoFX: permite copyr un elemento de una vista de list al portapapeles
  • Cómo ejecutar tornado fx hello world con java 7
  • TornadoFX - Creación de un layout MVP
  • Enlazando una vista a una propiedad de controller cambiante
  • El text de la label no se actualiza aunque el hilo de la interfaz de usuario parece responder