我有XYdataset
的情节时间序列。
我只需点击图表就可以在X轴上找到项目编号。
当我点击系列时,下面的行在X轴上获取项目,如果单击图表中的空白区域,则返回null。我需要项目(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) {
}
//----------------------------------------------------------------------
答案 0 :(得分: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) {}
}
}