mercredi 4 mai 2016

AreaCharts with CheckBoxes for each Serie on Javafx

I have an AreaChart with some CheckBoxes to select which series would like to appear on the AreaChart. The problem is that I have this error:

Exception in thread "JavaFX Application Thread" java.lang.IllegalArgumentException: Duplicate series added

This is the code that is executed when one of the 3 checkBoxes change his value.

   /**AreaChart<Integer,Double> multipleGraphic;
        * CheckBox HeartRateCheck,PedalingRateCheck,AverageSpeedCheck;
        * XYChart.Series AvSpeed = new XYChart.Series();
        * XYChart.Series Cadence = new XYChart.Series();
        * XYChart.Series HeartRate = new XYChart.Series();
        **/


    private void setMultiGraph() {

            multipleGraphic.getData().removeAll(multipleGraphic.getData());
            multipleGraphic.getData().clear();

            if (HeartRateCheck.isSelected() && PedalingRateCheck.isSelected() && AverageSpeedCheck.isSelected()) {
                multipleGraphic.getData().addAll(AvSpeed, Cadence, HeartRate);
            }

            if (!HeartRateCheck.isSelected() && PedalingRateCheck.isSelected() && AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(AvSpeed, Cadence);
            }
            if (HeartRateCheck.isSelected() && !PedalingRateCheck.isSelected() && AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(AvSpeed, HeartRate);
            }
            if (HeartRateCheck.isSelected() && PedalingRateCheck.isSelected() && !AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(Cadence, HeartRate);
            }

            if (!HeartRateCheck.isSelected() && !PedalingRateCheck.isSelected() && AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(AvSpeed);
            }
            if (!HeartRateCheck.isSelected() && PedalingRateCheck.isSelected() && !AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(Cadence);
            }
            if (HeartRateCheck.isSelected() && !PedalingRateCheck.isSelected() && !AverageSpeedCheck.isSelected()) {

                multipleGraphic.getData().addAll(HeartRate);
            }
        }

Image of the AreaChart with the 3 CheckBoxes

Thanks.




Aucun commentaire:

Enregistrer un commentaire