我使用jlabels创建按钮,因此我可以将图像制作成按钮。唯一的问题是,jlabels是正方形的,因此如果我点击图片未包含的广场内某处,它仍会运行jlabel.MouseClickEvent。是否有任何解决方法,或我可以使用的其他组件?
实施例。如果我点击圆圈未显示的角落上的this,但广场仍在那里,则会触发事件。
要使用的修复程序/不同组件?谢谢!
答案 0 :(得分:2)
如果您只是为图片使用简单的形状,那么您可以使用Playing With Shapes中的ShapeComponent
。
contains(...)
只会响应Shape范围内的鼠标事件。
否则,解决方案是覆盖JLabel的{{1}}方法,以检查鼠标点是否在图像的边界内,或者在您的情况下,如果该位置的像素不透明。