代码之家  ›  专栏  ›  技术社区  ›  Chris K

如何对特定区域内的非GUI对象实现MouseListener?

  •  0
  • Chris K  · 技术社区  · 7 年前

    我正在用Java制作一个“打鼹鼠”游戏。在我的游戏面板类中,我有一组洞(可以设置为摩尔)。孔是一个单独的对象(有一个孔类)。每个孔对象都是一个直径为100 px的圆。图形表示为圆形( fillOval )以及 size=100 已使用。

    我可以实施吗 MouseListener 孔对象的接口?因为孔不延伸 JComponent 例如 JPanel ?还可以将鼠标侦听器的作用域指定到特定区域吗?例如,我只希望计算圆形区域内的点击次数,而不希望计算圆形孔区域外的正方形内的点击次数。

    (现在我的代码中没有比我解释的程序结构更多的东西了。)

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andrew Thompson    7 年前

    添加 MouseListener 到父组件。拥有每个 Hole 对象提供接受 Point 对象(&A);退货 true / false 该点是否位于 。当用户单击面板时,它应该包含迭代 对象依次检查每个对象。

    图形表示为圆形( fillOval )以及 size=100 已使用。

    我会升级到使用 Ellipse2D 。由于椭圆实现 Shape ,它继承了 contains(Point2D) 方法