0

こんにちは私はJavaFX折れ線グラフを持っていて、異なる単位を使用してシリーズを再描画したいのですが、別のリストを作成し、変換係数を使用して新しい値を計算し、すべての値を削除して新しい値を追加します。

これは、最初のポイントが、すでに削除されている前の最後のポイントに接続されていることを除いて、うまく機能します。

これを回避する方法はありますか?

for(XYChart.Series<Number, Number> series : _chart.getData())
{
    List<XYChart.Data<Number, Number>> data = series.getData();
    List<XYChart.Data<Number, Number>> newData = 
                                  new ArrayList<XYChart.Data<Number, Number>>();
    for(XYChart.Data<Number, Number> item : data)
    {
        newData.add(new XYChart.Data<Number, Number>(
                              item.getXValue(), 
                              item.getYValue().floatValue() * conversionFactor));
    }
    series.getData().remove(0, series.getData().size() - 1);
    for(XYChart.Data<Number, Number> item : newData)
    {
        series.getData().add(item);
    }
}
4

1 に答える 1

1

最初に。でデータをクリアしますseries.getData().clear()ObservableListまた、ループの追加を回避するために使用できます。

for (XYChart.Series<Number, Number> series : chart.getData()) {
    List<XYChart.Data<Number, Number>> data = series.getData();
    ObservableList<XYChart.Data<Number, Number>> newData =
            FXCollections.<XYChart.Data<Number, Number>>observableArrayList();
    for (XYChart.Data<Number, Number> item : data) {
        newData.add(new XYChart.Data<Number, Number>(
                item.getXValue(),
                item.getYValue().floatValue() * 1.1));
    }
    series.getData().clear();
    series.setData(newData);
}
于 2012-08-28T14:14:52.657 に答える