Domanda

Sto utilizzando un DatasetChangeListener per monitorare la modifica di alcuni XYSeriesCollection perché una modifica in una serie deve riflettersi su altre serie di grafici della mia applicazione.

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

Sto usando DatasetGroup per memorizzare una stringa che identifica in modo univoco il set di dati.

Ora il punto è che vorrei conoscere solo la singola voce del set di dati su cui è avvenuta la modifica, altrimenti sono costretto a iterare tutto il set di dati e ispezionare tutti i dati.C'è un modo per farlo?

Ad esempio vorrei sapere che è avvenuta una modifica per la serie 1 nella collezione, sul valore y del terzo elemento.È possibile?

È stato utile?

Soluzione

Il Dataset restituito da getDataset() probabilmente non è utile in questo contesto.Invece, guarda la fonte di un SeriesChangeEvent .Probabilmente dovrai sovrascrivere uno o più metodi add() in una sottoclasse di XYSeries per tenere traccia dei dettagli della modifica.

Altri suggerimenti

Ho risolto parzialmente utilizzando SeriesChangeListener e aggiungendo una stringa di descrizione a ciascuna serie, ma ho ancora bisogno di ispezionare tutti i valori all'interno della serie. È una soluzione migliore rispetto all'utilizzo di un DatasetChangeListener (non ho bisogno di ispezionare tutti i valori di tutte le serie nel set di dati) ma non è perfetto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top