如何改变单条java fx的颜色

这是我的代码,它生成从0到10的10个值的条形图。 我想改变条形的颜色如下

如果我> 5颜色==红色,如果我> 8颜色==蓝色

所以最终输出将是0-5(默认黄色条)6-8(红色条)9(蓝色条)

请帮助我..谢谢

public class BarChartSample extends Application { @Override public void start(Stage stage) { stage.setTitle("Bar Chart Sample"); final CategoryAxis xAxis = new CategoryAxis(); final NumberAxis yAxis = new NumberAxis(); final BarChart bc = new BarChart(xAxis,yAxis); bc.setTitle("Country Summary"); xAxis.setLabel("bars"); yAxis.setLabel("Value"); XYChart.Series series1 = new XYChart.Series(); series1.setName("..."); for(int i=0;i5 than red if i>8 than blue series1.getData().add(new XYChart.Data("Value", i)); } } public static void main(String[] args) { launch(args); } } 

我创建了一个示例解决方案

该解决方案的工作原理是根据条形数据的值将条形图的-fx-bar-fill颜色设置为不同的颜色。

 final XYChart.Data data = new XYChart.Data("Value " + i , i); data.nodeProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue ov, Node oldNode, Node newNode) { if (newNode != null) { if (data.getYValue().intValue() > 8 ) { newNode.setStyle("-fx-bar-fill: navy;"); } else if (data.getYValue().intValue() > 5 ) { newNode.setStyle("-fx-bar-fill: firebrick;"); } } } }); 

coloredbarchart