Jlabel额外可点击空间

时间:2016-03-09 02:17:29

标签: java swing jlabel windowbuilder

我使用jlabels创建按钮,因此我可以将图像制作成按钮。唯一的问题是,jlabels是正方形的,因此如果我点击图片未包含的广场内某处,它仍会运行jlabel.MouseClickEvent。是否有任何解决方法,或我可以使用的其他组件?

实施例。如果我点击圆圈未显示的角落上的this,但广场仍在那里,则会触发事件。

要使用的修复程序/不同组件?谢谢!

1 个答案:

答案 0 :(得分:2)

如果您只是为图片使用简单的形状,那么您可以使用Playing With Shapes中的ShapeComponent

contains(...)只会响应Shape范围内的鼠标事件。

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