Java と JFreechart:DatasetChangeEvent から変更されたエントリのみを取得します
-
27-10-2019 - |
質問
私はを使用しています DatasetChangeListener
一部の変更を監視するため XYSeriesCollection
あるシリーズの変更は、アプリケーションのグラフの他のシリーズに反映する必要があるためです。
public void datasetChanged(DatasetChangeEvent arg0) {
XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
System.out.println(d.getGroup().getID());
}
使っています DatasetGroup
データセットを一意に識別する文字列を保存します。
ここで重要なのは、変更が発生したデータセットの 1 つのエントリだけを知りたいということです。そうでない場合は、すべてのデータセットを反復処理してすべてのデータを検査する必要があります。それを行う方法はありますか?
たとえば、コレクション内のシリーズ 1 の 3 番目の要素の y 値に変更が発生したことを知りたいと考えています。それは可能ですか?
解決
の Dataset
によって返されました getDataset()
おそらくこの文脈では役に立たないでしょう。代わりに、ソースを見てください。 SeriesChangeEvent
. 。おそらく、1 つまたは複数の add()
のサブクラス内のメソッド XYSeries
変更の詳細を追跡します。
他のヒント
SeriesChangeListenerを使用して、各シリーズに説明文字列を追加することで部分的に解決しましたが、それでもシリーズ内のすべての値を検査する必要があります。 DatasetChangeListenerを使用するよりも優れたソリューションです(データセット内のすべての系列のすべての値を検査する必要はありません)が、完全ではありません。
所属していません StackOverflow