マウスリスナーと CrosshairOverlay クラスを使用して、これを機能させました。休暇旅行から戻ったら、コードを投稿します。さほど難しくなく仕上がりました。
すみません、これを忘れていました!
まず、十字線を配置する場所の x、y 値を計算します。私にとっては、線の点に沿って移動させたかったので、最も近い x 値を計算し、そのデータ ペアを x、y に使用しました。
次に、このメソッドを呼び出します。
protected void setCrosshairLocation(double x, Double y) {
Crosshair domainCrosshair;
List domainCrosshairs = crosshairOverlay.getDomainCrosshairs();
if (domainCrosshairs.isEmpty()) {
domainCrosshair = new Crosshair();
domainCrosshair.setPaint(BlueStripeColors.LIGHT_GRAY_C0);
crosshairOverlay.addDomainCrosshair(domainCrosshair);
}
else {
// We only have one at a time
domainCrosshair = (Crosshair) domainCrosshairs.get(0);
}
domainCrosshair.setValue(x);
if (y != null) {
Crosshair rangeCrosshair;
List rangeCrosshairs = crosshairOverlay.getRangeCrosshairs();
if (rangeCrosshairs.isEmpty()) {
rangeCrosshair = new Crosshair();
rangeCrosshair.setPaint(BlueStripeColors.LIGHT_GRAY_C0);
crosshairOverlay.addRangeCrosshair(rangeCrosshair);
}
else {
// We only have one at a time
rangeCrosshair = (Crosshair) rangeCrosshairs.get(0);
}
rangeCrosshair.setValue(y);
}
}
crosshairOverlay は CrosshairOverlay のインスタンスであることに注意してください。