我正在使用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坐标是否等于标记边的y坐标,但是我不希望它们相同。我想使用类似的东西:
final int DISTANCE= /* a number */ ... ;
double mY=/*mouseY*/ ... ;
double msY=/*markerSideY*/ ... ;
if( Math.abs(mY-msY)<DISTANCE )
weCanChangeD1andD2();
但是我不想使用图表的x,y值,因为我不想更改缩放级别的DISTANCE! 另外,我希望当鼠标靠近标记时,指针会被吸引到标记的侧面。
我该怎么办?