JFreeChart:我如何获得十字准线指向的确切XYDataItem实例?

时间:2011-12-28 06:30:57

标签: java jfreechart

我希望在鼠标单击使得最近的数据点上的十字准线锁定时获得XYDataItem的确切实例,如下图所示。

The crosshair now locks on a data point

现在,当ChartMouseListener发生鼠标点击事件时,我能够获得十字准线的XY位置,但根据X值和Y获得XYDataItem可能不太好值。从鼠标事件开始,另一件事是ChartEntity,但它基于鼠标点击的位置,而不是十字准线锁定的位置。

那么..有没有更好的方法让我这样做?

如果你想在每次十字准线锁定时显示与数据点相关的大量附加数据,你将如何做到这一点? (现在我正在扩展XYDataItem并向子类添加一个新字段,以便我可以直接将信息放入其中,或者放一个可以帮助我从数据列表中获取其他数据的ID,这就是为什么我希望十字准线可以给我确切的数据项。)

1 个答案:

答案 0 :(得分:2)

添加ChartProgressListener。绘图完成后,向XYPlot询问域和范围十字准线值。在XYDataset

中找到相应的值

使用工具提示在图表中显示数据,如图here所示。您可以覆盖generateLabel()以添加自定义数据。或者,更新外部组件的模型,如杂项crosshair demos

中所示