2013-04-15 2 views
0

플롯 타임 시리즈에 XYdataset이 있습니다. 차트를 클릭하기 만하면 X 축에 항목 번호가 표시됩니다. 아래의 행을 클릭하면 X 축에 항목이 표시되고 차트의 빈 영역을 클릭하면 null이 반환됩니다. 나는 차트에서 시리즈 나 빈 영역을 클릭 할 때만 항목이 필요합니다 (X). 이것을 얻을 수 있습니까? 도움클릭하여 j (항목) 찾기 jfreechart

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

     } 
     //---------------------------------------------------------------------- 
+1

더 도움 들어, [sscce] (http://sscce.org/)를 포함하도록 질문을 수정하시기 바랍니다. – trashgod

답변

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