Javafx 如何在图表空间中获取鼠标位置
如何获得XYChart上的鼠标位置(在图表空间坐标中) 下面是我尝试使用NumberAxis.getValueForDisplay的一个示例: 但是当我运行这个程序时,我得到的坐标偏移误差约为10.6,-4.8。您正在向getValueForDisplay提供相对于图表的x和y坐标。。。方法。您需要相对于实际轴的坐标。X轴将从图表边缘偏移,以便为Y轴留出水平空间,可能还有其他填充,反之亦然 要执行此操作,请获取鼠标事件相对于场景的坐标,并将其转换为轴的坐标系:Javafx 如何在图表空间中获取鼠标位置,javafx,javafx-8,Javafx,Javafx 8,如何获得XYChart上的鼠标位置(在图表空间坐标中) 下面是我尝试使用NumberAxis.getValueForDisplay的一个示例: 但是当我运行这个程序时,我得到的坐标偏移误差约为10.6,-4.8。您正在向getValueForDisplay提供相对于图表的x和y坐标。。。方法。您需要相对于实际轴的坐标。X轴将从图表边缘偏移,以便为Y轴留出水平空间,可能还有其他填充,反之亦然 要执行此操作,请获取鼠标事件相对于场景的坐标,并将其转换为轴的坐标系: chart.setOnMouseP
chart.setOnMousePressed((MouseEvent event) -> {
Point2D mouseSceneCoords = new Point2D(event.getSceneX(), event.getSceneY());
double x = xAxis.sceneToLocal(mouseSceneCoords).getX();
double y = yAxis.sceneToLocal(mouseSceneCoords).getY();
primaryStage.setTitle("" +
xAxis.getValueForDisplay(x) + ", " +
yAxis.getValueForDisplay(y)
);
});
chart.setOnMousePressed((MouseEvent event) -> {
Point2D mouseSceneCoords = new Point2D(event.getSceneX(), event.getSceneY());
double x = xAxis.sceneToLocal(mouseSceneCoords).getX();
double y = yAxis.sceneToLocal(mouseSceneCoords).getY();
primaryStage.setTitle("" +
xAxis.getValueForDisplay(x) + ", " +
yAxis.getValueForDisplay(y)
);
});