0

我有XYdataset情节时间序列。我需要通过单击图表找到 X 轴上的项目编号。当我单击系列时,下面的行会在 X 轴上获取项目,如果单击图表中的空白区域,它将返回 null。我只需要 item(X) 而不是 Y 单击图表中的系列或空白区域。有可能得到这个吗?感谢帮助

        //----------------------------------------------------------------------
        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) {

        }
        //----------------------------------------------------------------------
4

1 回答 1

1

尝试这个:

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) {}
    }
}
于 2013-04-22T14:54:18.327 回答