Java y JFreechart:obtener solo la entrada modificada de un DatasetChangeEvent
-
27-10-2019 - |
Pregunta
estoy usando un DatasetChangeListener
para monitorear la modificación de algunos XYSeriesCollection
porque un cambio en una serie debe reflejarse en otras series de gráficos de mi aplicación.
public void datasetChanged(DatasetChangeEvent arg0) {
XYSeriesCollection d = (XYSeriesCollection)arg0.getDataset();
System.out.println(d.getGroup().getID());
}
Estoy usando DatasetGroup
para almacenar una cadena que identifique de forma única el conjunto de datos.
Ahora el punto es que me gustaría saber solo la entrada única del conjunto de datos en la que ocurrió el cambio; de lo contrario, me veo obligado a recorrer todo el conjunto de datos e inspeccionar todos los datos.¿Hay alguna forma de hacer eso?
Por ejemplo, me gustaría saber si se produjo un cambio para la serie 1 de la colección, en el valor y del tercer elemento.¿Es eso posible?
Solución
El Dataset
devuelto por getDataset()
Probablemente no sea útil en este contexto.En lugar de ello, mire la fuente de un SeriesChangeEvent
.Probablemente tendrás que anular uno o más de los add()
métodos en una subclase de XYSeries
para realizar un seguimiento de los detalles del cambio.
Otros consejos
Resolví parcialmente usando SeriesChangeListener y agregando una cadena de descripción a cada serie, pero aún necesito inspeccionar todos los valores dentro de la serie.Es una mejor solución que usar DatasetChangeListener (no necesito inspeccionar todos los valores de todas las series en el conjunto de datos) pero no es perfecta.