¿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.

  • TornadoFX filechooser
  • Tornadofx - controlando el object de la fila de la vista de tabla mientras construye
  • No se puede hacer que el nodo se centre en un StackPane con TornadoFX
  • Forma de configurar las properties de PrimaryStage o Scene en TornadoFX
  • Animación consecutiva en TornadoFX?
  • ¿Hay alguna manera de vincular una propiedad a appConfig en tornadofx?
  • En TornadoFX, ¿cómo puedo separar layouts en diferentes classs y luego usarlos en el generador?
  • Desplazamiento suave en JavaFX TableView
  • TornadoFx: que realiza mejor FXML o type-CSS
  • Context de reinicio de JavaFX
  • Lanzar una aplicación TornadoFX desde (un progtwig existente) de Kotlin