Pergunta

Estou usando um DatasetChangeListener para monitorar a modificação de algum XYSeriesCollection porque uma alteração em uma série deve ser refletida em outras séries de gráficos do meu aplicativo.

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

Estou usando DatasetGroup para armazenar uma string que identifica exclusivamente o conjunto de dados.

Agora a questão é, eu gostaria de saber apenas a única entrada do conjunto de dados em que a alteração ocorreu, caso contrário, sou forçado a iterar por todo o conjunto de dados e inspecionar todos os dados.Existe alguma maneira de fazer isso?

Por exemplo, gostaria de saber que ocorreu uma alteração para a série 1 da coleção, no valor y do terceiro elemento.Isso é possível?

Foi útil?

Solução

O Dataset retornado por getDataset() provavelmente não é útil neste contexto.Em vez disso, observe a fonte de um SeriesChangeEvent .Você provavelmente terá que substituir um ou mais dos métodos add() em uma subclasse de XYSeries para rastrear os detalhes da mudança.

Outras dicas

Resolvi parcialmente usando SeriesChangeListener e adicionando uma string de descrição a cada série, mas ainda preciso inspecionar todos os valores dentro da série. É uma solução melhor do que usar um DatasetChangeListener (não preciso inspecionar todos os valores de todas as séries no conjunto de dados), mas não é perfeito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top