Jlabel 额外可点击 Space

Jlabel Extra Clickable Space

我使用 jlabels 创建按钮,因此我可以将图像制作成某种按钮。唯一的问题是,jlabels 是正方形的,因此如果我在没有包含图片的正方形内单击某处,它仍然会运行 jlabel.MouseClickEvent。有没有解决这个问题的方法,或者我可以使用的其他组件?

例如。如果我在没有显示圆圈但正方形仍然存在的角上单击 this,则会触发事件。

有fixes/different组件要用吗?谢谢!

如果您只是对图像使用简单的形状,那么您可以使用 Playing With Shapes 中的 Shape Component

ShapeComponent 只会响应形状范围内的鼠标事件。

否则,解决方案是覆盖 JLabel 的 contains(...) 方法,以检查鼠标点是否在图像的边界内,或者在您的情况下该位置的像素是否不透明。