如何将辅助图例添加到JavaFX图表?

时间:2017-11-16 21:31:56

标签: java javafx charts kotlin tornadofx

使用

添加自定义节点(在我的情况下是JavaFX图表的另一个图例)
val newLegend = MyLegend()
newLegend.isVertical=true

val legend = lookupAll(".chart-legend").first()

传说是级联的(并不奇怪),但至少我知道我可以渲染它: enter image description here

所以要一个接一个地垂直对齐它们,我试图将它添加到父代:

legend.getParent().addChildIfPossible( newLegend)

但是这会使左上角的附加节点错误地呈现为一些点 enter image description here

我做错了什么?我能以更聪明的方式访问第一个图例的父容器吗?

可以找到完整的示例来源here

1 个答案:

答案 0 :(得分:1)

<application android:name=".app.MyApplication" android:allowBackup="false" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:supportsRtl="false" android:theme="@style/MyTheme"> 的节点实际上是.chart-legend,后者又扩展com.sun.javafx.charts.Legend。如果您不想处理TilePane的布局约束,只需清除它们中的子项,并在其中添加所需的任何布局容器。在此示例中,我添加了TilePane和三个标签:

VBox

由于图表显然没有真正提供操作图例的便捷方式,因此您可以考虑为图表创建自己的外观作为更稳定的解决方案。这样,您就可以精确控制图例的显示位置。