在java awt 中,利用g.drawPolygon(x,y,215);
其中x,y是数组
在面板上画了一个不规则的封闭多边形
,如果我用鼠标重新点击这个多边形,请问,我该怎么判断是不是选中了这个多边形哦?
我试图从点击任意点的坐标来实现,但似乎有些困难
比方说,我鼠标随意点了一下,程序怎么判断鼠标单击的位置在这个多边形内部,而不是在外部?2问
如果在面板上随意画了一条直线,我现在要点击这个“直线”,程序怎么判断鼠标单击的位置正好在这条线上哦?

解决方案 »

  1.   

    使用java.awt.Shape
    使用 
    Graphics2D g2d = (Graphics2D) g;
    Line2D line = new ...
    g2d.draw(line);
    Polygon polygon = new ...
    g2d.draw(ploygon);使用 Shape 提供的 contains 方法判断
      

  2.   

    不要使用Graphics提供的drawXXX绘制
    使用Graphics2D提供的draw(Shape shape)绘制图形。实现Shape接口的Line2D等基本图形都提供了contains(double x,double y) contains(Point2D p)测试指定坐标是否在此对象的边界内。