Проверьте, находится ли мышь рядом с маркером в JFreeChart - PullRequest
0 голосов
/ 07 февраля 2019

Я создаю простую диаграмму с JFreeChart , и я добавил несколько экземпляров IntervalMarker:

private void addIntervalMarker(String name, double d1, double d2, Color c){
    IntervalMarker marker = new IntervalMarker(d1, d2);
    marker.setLabel(name);

    //Aesthetic changements...

    xylineChart.getXYPlot().addDomainMarker(marker, Layer.BACKGROUND);
}

Теперь я хочу отредактировать исходные d1 и d2параметр, перетаскивая маркер интервала.Я знаю, что мне нужно переопределить метод public void mouseDragged(MouseEvent e), но я не знаю, как проверить, находится ли мышь рядом со значением intervalMarker.

Я могу проверить, равна ли координата мыши y координатекоордината у координаты у, но я не хочу, чтобы они были одинаковыми.Я хотел бы использовать что-то вроде:

final int DISTANCE= /* a number */ ... ;
double mY=/*mouseY*/ ... ;
double msY=/*markerSideY*/ ... ;
if( Math.abs(mY-msY)<DISTANCE )
    weCanChangeD1andD2();

Но я не хочу использовать значения x, y диаграммы, потому что я не хочу изменять DISTANCE с уровнем масштабирования!Кроме того, я хочу, чтобы, когда мышь находилась рядом с маркером, указатель притягивался к стороне маркера.

Как я могу это сделать?

...