JFreeChart: получите значение источника данных по щелчку мышью

У меня есть экземпляр JFreeChart, который отображает состояние памяти процесса, инициализированное следующим образом:

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);

Позже я добавляю значения к каждому TimeSeries в TimeSeriesCollection. Я хотел бы так или иначе знать - когда пользователь нажимает на Диаграмму - или во сколько связанный с тем столбцом, или еще лучше - каков индекс значения.

Я посмотрел на классы JFreeChart и ChartMouseListener, но я не мог выяснить, как сделать это (также документация JFreeChart раздражающе недостаточна, я предполагаю, что они пытаются заставить людей покупать свое Руководство разработчика).

7
задан Omry Yadan 22 July 2010 в 12:44
поделиться

1 ответ

хм должно работать, если вы замените последние две строки чем-то вроде этого:

ChartPanel panel=new ChartPanel(ChartFactory.createTimeSeriesChart("Memory usage", "Time", "Size", m_data, true, true, false)));
panel.addChartMouseListener(new ChartMouseListener(){
    void chartMouseClicked(ChartMouseEvent e){
        [...do something on click...]
    }
    void chartMouseMoved(ChartMouseEvent e){
        [...do something on move...]
    }
});
return panel;
2
ответ дан 7 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: