Я сделаю попытку, но она не интегрируется с используемой вами диаграммой.
public class CrossLine extends StackPane {
private Line vertical;
private Line horizontal;
public CrossLine() {
this.setAlignment(Pos.TOP_LEFT);
vertical = new Line();
horizontal = new Line();
vertical.getStrokeDashArray().add(2d);
horizontal.getStrokeDashArray().add(2d);
vertical.setStartX(0);
vertical.setStartY(0);
vertical.setEndX(0);
vertical.endYProperty().bind(this.heightProperty());
horizontal.setStartX(0);
horizontal.setStartY(0);
horizontal.endXProperty().bind(this.widthProperty());
horizontal.setEndY(0);
getChildren().addAll(vertical, horizontal);
this.addEventFilter(MouseEvent.MOUSE_MOVED, event -> {
double x = event.getX();
double y = event.getY();
vertical.setTranslateX(x);
horizontal.setTranslateY(y);
});
}
}
Использование:
StackPane container = new StackPane();
container.getChildren().addAll(chart, new CrossLine());
Вероятно, будет также некоторая задержка,возможно, можно решить, если событие можно переместить в какое-либо layout
переопределение метода.