Я создаю простую диаграмму с 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 с уровнем масштабирования!Кроме того, я хочу, чтобы, когда мышь находилась рядом с маркером, указатель притягивался к стороне маркера.
Как я могу это сделать?