devo un'istanza JFreeChart che visualizza lo stato della memoria processo, inizializzata come segue:JFreeChart: ottenere valore dell'origine dati sul mouse scegliere
m_data = new TimeSeriesCollection();
TimeSeries vmsize = new TimeSeries("VMSize");
TimeSeries resident = new TimeSeries("Resisdent");
TimeSeries shared = new TimeSeries("Shared memory");
TimeSeries code = new TimeSeries("Code");
TimeSeries data = new TimeSeries("Data");
m_data.addSeries(vmsize);
m_data.addSeries(resident);
m_data.addSeries(shared);
m_data.addSeries(code);
m_data.addSeries(data);
JFreeChart chart = ChartFactory.createTimeSeriesChart("Memory usage", "Time", "Size", m_data, true, true, false);
m_chart = new ChartPanel(chart);
Successivamente aggiungo valori per ciascuno TimeSeries nel TimeSeriesCollection. Vorrei sapere in qualche modo - quando l'utente fa clic sul grafico - o sul tempo associato a tale colonna, o anche meglio - qual è l'indice del valore.
Ho esaminato le classi JFreeChart e ChartMouseListener, ma non sono riuscito a capire come farlo (anche la documentazione di JFreeChart è fastidiosamente scarsa, suppongo che stiano cercando di convincere la gente a comprare la guida dello sviluppatore).
Bene, ho già guardato ChartMouseLIstener, l'informazione nell'evento è piuttosto inutile. la domanda non è come aggiungere un listener - ma piuttosto come ottenere i dati rilevanti dall'evento. –
puoi usare ChartEvent.getEntity() per ottenere la forma (barra, linea) sotto il mouse http://www.jfree.org/jfreechart/api/javadoc/org/jfree/chart/entity/ChartEntity.html – fasseg
+ 1, funziona come un campione! – trashgod