JavaFx散点图自定义图例

时间:2016-01-19 15:50:52

标签: java javafx charts legend

我的Scatter Chart与JavaFx的图例有问题。我使用以下代码动态更改系列的样式:

Set<Node> nodes = scatterChart.lookupAll(".series0"); 
                    for (Node n : nodes) {
                        n.setStyle("-fx-blend-mode: multiply ;");
                    }

我为所有系列执行此操作,并在setStyle方法中使用不同的字符串,它在图表中工作正常。我的问题是这些变化不影响传说,它继续显示每个系列的默认颜色,形状等,而不是我所做的那些。任何人都可以提出任何建议吗?

1 个答案:

答案 0 :(得分:1)

我发布了这个问题,但我找到了一个解决方案,我想我会在这里写一下,以防其他人遇到与我一样的问题。我更改了答案的代码如下:

ArrayList<Node> seriesNodes = new ArrayList<Node>();
Set<Node> nodes = scatterChart.lookupAll(.series0); 
                    int flag=0;
                    for (Node n : nodes) {
                        n.setStyle("-fx-blend-mode: multiply ;");
                         if(flag==0){
                             seriesNodes.add(n);
                         }
                         flag++;
                    }

我为每个系列执行此操作,因此我将每个系列的节点保存在ArrayList中,然后在将所有系列添加到scatterChart后,我执行以下代码:

Set<Node> items = scatterChart.lookupAll("Label.chart-legend-item");
             int it=0;
             for (Node item : items) {
                  Label label = (Label) item;
                  label.setGraphic(seriesNodes.get(it));
                  it++;
             }

我希望这可以帮助别人,就像它为我做的那样!