I want to bind three values to the dataset as Value(y axis value), Column Name (X axis value), Column ID (to get on mouse click) in order to make drill-down chart.
Here is my code to create Dataset:
DefaultCategoryDataset categoryDataset = new DefaultCategoryDataset();
categoryDataset.setValue(80, "", "Chap 1");
categoryDataset.setValue(52, "", "Chap 2");
categoryDataset.setValue(95, "", "Chap 3");
categoryDataset.setValue(25, "", "Chap 4");
And the chart :
JFreeChart chapterChart = createChart(chapterChartDataset, "Average Result");
ChartPanel chapterChartPanel = new ChartPanel(chapterChart);
chapterChartPanel.addChartMouseListener(new ChartMouseListener() {
@Override
public void chartMouseMoved(ChartMouseEvent arg0) {
}
@Override
public void chartMouseClicked(ChartMouseEvent event){
System.out.println(event.getSource().getClass());
ChartEntity chartentity = event.getEntity();
if (chartentity != null && chartentity.getToolTipText() != null && chartentity.getToolTipText().trim().length() > 0){
System.out.println("Mouse clicked: " + chartentity.toString());
String chapName = chartentity.getToolTipText().trim();
}else{
System.out.println("Mouse clicked: null entity.");
}
}
});
In this code I need chapter ID also to be stored and retrieved at mouse click.