2

シリーズセットへの変更、つまり、新しいシリーズが挿入された、または新しいデータポイントがシリーズに追加されたという通知を受け取るために、特定のJFreeChartオブジェクトをサブスクライブするにはどうすればよいですか?

4

1 に答える 1

2

データセットの場合:

Dataset coll = new XYSeriesCollection();
coll.addChangeListener(new DatasetChangeListener() {
    @Override
    public void datasetChanged(DatasetChangeEvent arg0) {
        // TODO Auto-generated method stub
    }
});

またはJFreeChart自体の場合:

JFreeChart chart = createChart();
chart.addChangeListener(new ChartChangeListener() {
    @Override
    public void chartChanged(ChartChangeEvent arg0) {
        // TODO Auto-generated method stub
    }
});

そして、それは中間のプロットと最後のシリーズでも機能すると確信しています。

編集:追加/削除されたシリーズのみをリッスンするには:

final XYSeriesCollection coll = new XYSeriesCollection();
coll.addChangeListener(new DatasetChangeListener() {
    private int numberOfSeries = -1;

    @Override
    public void datasetChanged(DatasetChangeEvent arg0) {
        int numberOfSeriesNew = coll.getSeriesCount();
        if (numberOfSeriesNew == numberOfSeries) {
            // no series was added/removed
        } else if (numberOfSeriesNew < numberOfSeries) {
            // series was removed
            numberOfSeries = numberOfSeriesNew;
        } else {
            // series was added
            numberOfSeries = numberOfSeriesNew;
        }
    }
});
于 2012-08-14T09:36:37.027 に答える