public WeightCoverageChart() { weightA.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set( 0, new PieChart.Data("A " + weightA.doubleValue() + "kgs", (weightA.doubleValue()))); } }); weightB.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(1, new PieChart.Data("B", (weightB.doubleValue()))); } }); weightC.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(2, new PieChart.Data("C", (weightC.doubleValue()))); } }); weightD.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(3, new PieChart.Data("D", (weightD.doubleValue()))); } }); weightE.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(4, new PieChart.Data("E", (weightE.doubleValue()))); } }); weightF.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(5, new PieChart.Data("F", (weightF.doubleValue()))); } }); weightG.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(6, new PieChart.Data("G", (weightG.doubleValue()))); } }); weightH.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(7, new PieChart.Data("H", (weightH.doubleValue()))); } }); weightI.addListener( new ChangeListener<Number>() { @Override public void changed( ObservableValue<? extends Number> observable, Number oldValue, Number newValue) { pieData.set(8, new PieChart.Data("I", (weightI.doubleValue()))); } }); this.setCache(true); pie.setData(pieData); Rectangle pieBG = RectangleBuilder.create() .cache(true) .x(pie.getTranslateX() + 127) .y(pie.getTranslateY() + 84) .fill(Color.rgb(50, 50, 50)) .id("envelopeBG") .width(265) .height(245) .arcWidth(5) .arcHeight(5) .build(); Group group = new Group(); group.getChildren().addAll(pieBG, pie); getChildren().add(group); }