我使用Java中的JFreeChart绘制一个包含50多个x、y坐标点的XYLineChart。图表在我的JFrame的一个JPanel中的ChartPanel中。我知道JFreeChart已经内置了缩放功能,即在鼠标点击和拖动时,它会缩放并显示所选“拖动”区域下的点。但是,我想知道是否有任何方法在按下CTRL、ALT或SHIFT键的同时缩放,让它返回所选区域内点的x、y坐标。也就是说,如果用户单击图表上的某个点,然后拖动鼠标,它应该像往常一样进行缩放。但是,如果用户单击某个点并同时按住SHIFT或ALT或CTRL键拖动,我们应该得到选择在图表上拖动区域下面的所有点的列表。这可能吗?请告诉我如何处理。
我尝试为ChartPanel添加一个简单的MouseListener来检测鼠标何时被按下和释放,但鼠标事件返回的x、y位置值对应于屏幕上的点击位置而不是图表上点的实际坐标。我需要用户单击并拖动鼠标时所有点的实际坐标,以便计算鼠标何时被按下和拖动,以及鼠标何时被释放,并使用该信息选择拖动区域下面的多个点。如果有任何想法,请告诉我。