我也遇到了这个问题。解决方案可以检测出图例项目的创建时间,以便可以向其添加动态样式。
我在图例的“
getChildrenUnmodifiable()”的ObservableList中添加了一个ListChangeListener,这又为图例的每个子级添加了一个ListChangeListener。从此侦听器中,我们可以知道何时将新项目添加到图例(或删除)。然后,我们可以进行动态样式更改。
for (Node n : lineChart.getChildrenUnmodifiable()) { if (n instanceof Legend) { final Legend legend = (Legend) n; // remove the legend legend.getChildrenUnmodifiable().addListener(new ListChangeListener<Object>() { @Override public void onChanged(Change<?> arg0) { for (Node node : legend.getChildrenUnmodifiable()) { if (node instanceof Label) { final Label label = (Label) node; label.getChildrenUnmodifiable().addListener(new ListChangeListener<Object>() { @Override public void onChanged(Change<?> arg0) { //make style changes here } }); } } } }); } }


