¿Cómo agregar leyenda secundaria al gráfico JavaFX?

Al agregar un nodo personalizado (en mi caso, otra leyenda para un gráfico JavaFX) con

val newLegend = MyLegend() newLegend.isVertical=true val legend = lookupAll(".chart-legend").first() 

Las leyendas están en cascada (no es una sorpresa) pero al less sé que puedo renderizarlas: enter image description here

Entonces, para alinearlos verticalmente uno tras otro intenté agregarlo al padre:

 legend.getParent().addChildIfPossible( newLegend) 

Pero esto representa incorrectamente el nodo adicional en la esquina superior izquierda como solo algunos puntos enter image description here

¿Qué estoy haciendo mal? ¿Puedo acceder al contenedor principal de la primera leyenda de una manera más inteligente?

Fuentes completas de ejemplos se pueden encontrar aquí

El Nodo con class .chart-legend es de hecho com.sun.javafx.charts.Legend , que a su vez extiende TilePane . Si no quiere lidiar con las restricciones de layout de TilePane , simplemente TilePane a los niños y agregue el contenedor de layout que desee dentro de él. En este ejemplo, he agregado un VBox y tres tags:

 with (lookupAll(".chart-legend").first()) { getChildList()?.clear() vbox { label("Line 1") label("Line 2") label("Line 3") } } 

Como está claro que el gráfico realmente no proporciona una manera conveniente de manipular la leyenda, podría considerar crear su propia máscara para el gráfico como una solución más estable. De esta forma puede controlar exactamente dónde se muestra la leyenda.

  • Desplazamiento suave en JavaFX TableView
  • TornadoFX cómo enlazar Node style (o styleClass) a una propiedad?
  • ¿Cómo puedo crear un encabezado de columna nested / dividido usando TornadoFx?
  • java.lang.ClassNotFoundException: no encontró la class "com.my.app.example.Main" en la ruta: DexPathList
  • Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
  • Dibujando líneas desde ViewModel TornadoFX
  • ¿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 ejecutar tornado fx hello world con java 7
  • CellCache se representa inesperadamente en TableView con tornadoFX
  • TornadoFX: permite copyr un elemento de una vista de list al portapapeles
  • Cómo implementar TornadoFX WebEngine Callback en Kotlin