我使用jlabels创建按钮,因此可以将图像变成某种按钮。唯一的问题是,jlabels是正方形的,因此如果我在不包含图片的正方形内的某个位置单击,它将仍然运行jlabel.MouseClickEvent。是否有针对此的任何修复程序,或者我可以使用的其他组件?
例如如果我在未显示圆圈的角落处单击this,但正方形仍然存在,则触发该事件。
是否有要使用的修复程序/不同组件?谢谢!
最佳答案
如果仅对图像使用简单的形状,则可以使用Playing With Shapes中的Shape Component
。ShapeComponent
仅响应Shape范围内的鼠标事件。
否则,解决方案是重写JLabel的contains(...)
方法,以检查鼠标指针是否在图像的边界内,或者在这种情况下,检查该位置处的像素是否不透明。