Java et jfreechart: obtenez seulement entrée modifiée à partir d'un DatasetChangeEvent
-
27-10-2019 - |
Question
J'utilise un DatasetChangeListener
pour surveiller la modification de certains XYSeriesCollection
parce qu'un changement d'une série doit se refléter à d'autres séries des tableaux de mon application.
public void datasetChanged(DatasetChangeEvent arg0) {
XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
System.out.println(d.getGroup().getID());
}
J'utilise DatasetGroup
pour stocker une chaîne qui identifie de façon unique l'ensemble de données.
Maintenant, le point est, je voudrais savoir que l'entrée unique de l'ensemble de données sur lequel l'a changé eu lieu, sinon je suis obligé de itérer à travers tout le jeu de données et toutes les données inspecter. Est-il possible de le faire?
Par exemple, je voudrais savoir qu'un changé pour la série est survenue 1 dans la collection, la valeur y du troisième élément. Est-ce possible?
La solution
Le Dataset
retourné par SeriesChangeEvent
. Vous aurez probablement à remplacer une ou plusieurs des méthodes de add()
dans une sous-classe de XYSeries
pour suivre les détails du changement.
Autres conseils
Je partiellement résolu en utilisant SeriesChangeListener et en ajoutant une chaîne de description à chaque série, mais je dois encore vérifier toutes les valeurs à l'intérieur de la série. Il est une meilleure solution que d'utiliser un DatasetChangeListener (je ne ai pas besoin d'inspecter toutes les valeurs de toutes les séries dans l'ensemble de données), mais il est pas parfait.