如何对某个区域内的非GUI对象实现MouseListener?
How to implement MouseListener to a non-GUI object within a certain area?
我正在 Java 制作 "whack a mole" 游戏。在我的游戏面板 class 中,我有一组孔(可以设置为地鼠)。孔是一个单独的对象(有一个孔class)。每个 Hole 对象都是一个直径为 100 像素的圆。图形表示是一个圆圈(fillOval
)并且使用了size=100
。
我可以为 Hole 对象实现 MouseListener
接口吗?有没有可能因为 Hole 没有扩展 JComponent
,比如 JPanel
?也可以将鼠标侦听器的范围指定到特定区域吗?例如,我只想计算圆形区域内的点击次数,而不是圆孔区域外接正方形内的点击次数。
(我的代码现在没有比我解释的程序结构更多的东西了。)
将 MouseListener
添加到父组件。让每个 Hole
对象提供一个接受 Point
对象和 returns true
/ false
的方法,以确定该点是否位于将要绘制的区域内Hole
。当用户单击面板时,它应该包含迭代 Hole
对象的代码,依次检查每个对象。
The graphical representation is a circle (fillOval
) and size=100
was used.
我会将其升级为使用 Ellipse2D
. Since the ellipse implements Shape
, it inherits the contains(Point2D)
方法。
我正在 Java 制作 "whack a mole" 游戏。在我的游戏面板 class 中,我有一组孔(可以设置为地鼠)。孔是一个单独的对象(有一个孔class)。每个 Hole 对象都是一个直径为 100 像素的圆。图形表示是一个圆圈(fillOval
)并且使用了size=100
。
我可以为 Hole 对象实现 MouseListener
接口吗?有没有可能因为 Hole 没有扩展 JComponent
,比如 JPanel
?也可以将鼠标侦听器的范围指定到特定区域吗?例如,我只想计算圆形区域内的点击次数,而不是圆孔区域外接正方形内的点击次数。
(我的代码现在没有比我解释的程序结构更多的东西了。)
将 MouseListener
添加到父组件。让每个 Hole
对象提供一个接受 Point
对象和 returns true
/ false
的方法,以确定该点是否位于将要绘制的区域内Hole
。当用户单击面板时,它应该包含迭代 Hole
对象的代码,依次检查每个对象。
The graphical representation is a circle (
fillOval
) andsize=100
was used.
我会将其升级为使用 Ellipse2D
. Since the ellipse implements Shape
, it inherits the contains(Point2D)
方法。