0

I have XYdataset for plot time series. I need find the item number on X axis just by click on chart. below lines get item on X axis just when I click on series and if click on empty area in chart it return null. I need just item(X) not Y where ever I click on series or empty area in chart. is it possible to get this? Thanks for help

        //----------------------------------------------------------------------
        CP.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent cme) {
            ChartEntity entity = cme.getEntity();   
            if (entity != null) {   
                System.out.println("Mouse clicked: " + entity.toString());   
            }   
            else {   
                System.out.println("Mouse clicked: null entity."+entity);   
            }   
        }
        @Override
        public void chartMouseMoved(ChartMouseEvent cme) {

        }
        //----------------------------------------------------------------------
robthewolf
  • 7,343
  • 3
  • 29
  • 29
Morteza
  • 13
  • 7

1 Answers1

1

Try this:

import org.jfree.chart.ChartMouseEvent;
import org.jfree.chart.ChartMouseListener;
import org.jfree.chart.entity.XYItemEntity;


final class ClickedIndexMouseListener implements ChartMouseListener {

    @Override
    public void chartMouseMoved(ChartMouseEvent event) {
    }

    @Override
    public void chartMouseClicked(ChartMouseEvent event) {
        try {
            XYItemEntity ce = (XYItemEntity) event.getEntity();
            System.out.println("Item    " + ce.getItem());
            System.out.println("Series  " + ce.getSeriesIndex());
            System.out.println("X Value " + ce.getDataset().getX(ce.getSeriesIndex(),  ce.getItem()));
            System.out.println("Y Value " + ce.getDataset().getY(ce.getSeriesIndex(),  ce.getItem()));
        } catch (Exception e) {}
    }
}
GrahamA
  • 5,875
  • 29
  • 39