我正在用 Java 制作一个“打地鼠”游戏。在我的游戏面板类中,我有一系列孔(可以设置为摩尔)。孔是一个单独的对象(有一个 Hole 类)。每个 Hole 对象都是一个直径为 100 px 的圆。图形表示为圆形 (fillOval
),并使用 size=100
。
我可以为 Hole 对象实现 MouseListener
接口(interface)吗?由于 Hole 没有扩展 JComponent
(例如 JPanel
),这是否可能?另外是否可以将鼠标监听器的范围指定为特定区域?例如,我只想计算圆形区域内的点击次数,而不是圆孔区域外接正方形内的点击次数。
(除了我所解释的程序结构之外,我的代码目前没有更多内容。)
最佳答案
将 MouseListener
添加到父组件。让每个 Hole
对象提供一个方法,该方法接受 Point
对象并返回 true
/false
以确定该点是否位于在孔
绘制的区域内。当用户单击面板时,它应该包含迭代 Hole
对象的代码,依次检查每个对象。
The graphical representation is a circle (
fillOval
) andsize=100
was used.
我会将其升级为使用 Ellipse2D
。由于椭圆实现了 Shape
,因此它继承了 contains(Point2D)
方法。
关于java - 如何对某个区域内的非GUI对象实现MouseListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313215/