检查鼠标是否在JFreeChart中的标记附近

时间:2019-02-07 11:40:22

标签: java jfreechart

我正在使用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! 另外,我希望当鼠标靠近标记时,指针会被吸引到标记的侧面。

我该怎么办?

0 个答案:

没有答案