在javafx中为特定系列设置颜色

时间:2016-08-14 16:48:02

标签: javafx bubble-chart

我正在javafx编写一个程序,我正在使用气泡图,折线图,散点图和饼图来比较不同的公司和产品。我希望某个公司和属于它的所有产品在出现在图表中时始终呈现绿色。现在我正在使用CSS来设置图表的样式,我尝试了这些不同的替代品来为特定系列设置颜色(在这种情况下,它是用于气泡图):

examples/example02_CSS_styles.php

所有这些替代方案都提供了NullPointerExceptions。这是为什么?有没有其他方法可以按照我想要的方式设置颜色?

谢谢!

1 个答案:

答案 0 :(得分:3)

我发布了这个问题,但我自己找到了答案。如果其他人有同样的问题,我想我可以在这里发布。我使用此代码来解决问题:

 for(Integer position : myCompanyPositions) {
        Set<Node> nodes = chart.lookupAll(".series" + position);
        for (Node n : nodes) {
            n.setStyle("-fx-bubble-fill:  #7fff00aa; "
                    + "-fx-background-color: radial-gradient(center 50% 50%, radius 80%, "
                    + "derive(-fx-bubble-fill,20%), derive(-fx-bubble-fill,-30%));");
         }
    }
    Set<Node> items = chart.lookupAll("Label.chart-legend-item");
    for (Node item : items) {
         Label label = (Label) item;
         if(label.getText().equals("myCompany")) {
             label.getGraphic().setStyle("-fx-bubble-fill:  #7fff00aa; "
                    + "-fx-background-color: radial-gradient(center 50% 50%, radius 80%, "
                    + "derive(-fx-bubble-fill,20%), derive(-fx-bubble-fill,-30%));");
         }
    }

myCompanyPositions是一个Set,我已经存储了属于myCompany的系列的所有索引。