JavaFX:如何在XY线图的Y轴上正确实现`getValueForDisplay()`?

我试图在线图上实现工具提示以显示X轴和Y轴的值,我正确地获得X轴的值,但Y轴值未正确计算。 我试着做数学,但是当我们调整窗口大小时,到目前为止没有任何帮助。 是否有任何逻辑可以帮助我们正确计算Y轴上的值?

// lineChart is an object of AreaChart Or XYChart lineChart.setOnMouseMoved(new EventHandler() { @Override public void handle(MouseEvent event) { Tooltip t= new Tooltip("X:"+lineChart.getXAxis().getValueForDisplay(event.getX()-lineChart.getXAxis().getLayoutX())+", Y:"+ lineChart.getYAxis().getValueForDisplay(event.getY())); t.show(stage); } }); 

这应该做你需要的:

 public void handle(MouseEvent event) { Point2D pointInScene = new Point2D(event.getSceneX(), event.getSceneY()); Axis xAxis = lineChart.getXAxis(); Axis yAxis = lineChart.getYAxis(); double xPosInAxis = xAxis.sceneToLocal(new Point2D(pointInScene.getX(), 0)).getX(); double yPosInAxis = yAxis.sceneToLocal(new Point2D(0, pointInScene.getY())).getY(); double x = xAxis.getValueForDisplay(xPosInAxis).doubleValue(); double y = yAxis.getValueForDisplay(yPosInAxis).doubleValue(); Tooltip t = new Tooltip("X: "+x+", Y:"+y); t.show(stage); }