Java JFreeChart:如何获得十字线指向的确切XYDataItem实例?
我想获得当鼠标单击使十字线锁定在最近的数据点上时Java JFreeChart:如何获得十字线指向的确切XYDataItem实例?,java,jfreechart,Java,Jfreechart,我想获得当鼠标单击使十字线锁定在最近的数据点上时XYDataItem的确切实例,如下图所示 现在,当鼠标点击事件发生在ChartMouseListener上时,我能够获得十字线的X-Y位置,但是根据X值和Y值获取XYDataItem可能不太好。从鼠标事件来看,另一件事是ChartEntity,但它基于鼠标单击的位置,而不是十字线锁定的位置 所以。。有没有更好的办法让我这样做? 或 如果您想在十字线每次锁定数据点时显示大量与该数据点相关的附加数据,您将如何做到这一点?(现在我扩展了XYDataI
XYDataItem
的确切实例,如下图所示
现在,当鼠标点击事件发生在ChartMouseListener
上时,我能够获得十字线的X-Y位置,但是根据X值和Y值获取XYDataItem
可能不太好。从鼠标事件来看,另一件事是ChartEntity
,但它基于鼠标单击的位置,而不是十字线锁定的位置
所以。。有没有更好的办法让我这样做?或
如果您想在十字线每次锁定数据点时显示大量与该数据点相关的附加数据,您将如何做到这一点?(现在我扩展了XYDataItem并向子类添加了一个新字段,这样我就可以直接将信息放入其中,或者添加一个ID,帮助我从数据列表中获取额外的数据,这就是为什么我希望十字线可以为我提供准确的数据项)。添加一个新字段。绘制完成后,询问域和范围十字线值。在
XYDataset
中找到相应的值
使用工具提示在图表中显示数据,如图所示。您可以覆盖
generateLabel()
以添加自定义数据。或者,更新外部组件的模型,如“杂项”中所示。谢谢你,垃圾桶。在XYSeries
中,获取XYDataItem的唯一方法是使用getDataItem(int-index)
,还有一个名为indexof(Number x)
的函数,它返回具有x值的项的索引,因此我应该能够使用它来获取索引,然后获取项——但是,我不能。在XYDataset
中,将有许多XYDataItem
s具有相同的x值,因此我假设在使用indexof时,我将获得第一个具有x值的索引——这是一个问题。域(x)和范围(y)的组合不是唯一的吗?An可能会有所帮助。该组合将是唯一的,但indexof
只有一个“x”作为参数。我将准备一份带有样本数据的sscce。啊,我明白了;你可能需要对模型做一个精确的分析。你可能还需要做一个测试。