Frage

Ich verwende einen DatasetChangeListener, um die Änderung eines XYSeriesCollections zu überwachen, da eine Änderung in einer Reihe in andere Reihen der Diagramme meiner Anwendung übernommen werden muss.

public void datasetChanged(DatasetChangeEvent arg0) {
     XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
     System.out.println(d.getGroup().getID());
}

Ich verwende DatasetGroup, um eine Zeichenfolge zu speichern, die das Dataset eindeutig identifiziert.

Nun ist der Punkt, ich möchte nur den einzelnen Eintrag des Datensatzes kennen, bei dem die Änderung stattgefunden hat, andernfalls bin ich gezwungen, den gesamten Datensatz zu durchlaufen und alle Daten zu überprüfen.Gibt es eine Möglichkeit, dies zu tun?

Zum Beispiel möchte ich wissen, dass für die Serie 1 in der Sammlung eine Änderung am y-Wert des dritten Elements aufgetreten ist.Ist das möglich?

War es hilfreich?

Lösung

Der von getDataset() ist in diesem Zusammenhang wahrscheinlich nicht sinnvoll.Schauen Sie sich stattdessen die Quelle eines SeriesChangeEvent .Sie müssen wahrscheinlich eine oder mehrere der add()-Methoden in einer Unterklasse von XYSeries , um die Änderungsdetails zu verfolgen.

Andere Tipps

Ich habe teilweise mit SeriesChangeListener gelöst und jeder Serie eine Beschreibungszeichenfolge hinzugefügt, aber ich muss noch alle Werte in der Serie überprüfen. Es ist eine bessere Lösung als die Verwendung eines DatasetChangeListener (ich muss nicht alle Werte aller Serien im Dataset überprüfen), aber es ist nicht perfekt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top