Java Jlabel额外的可点击空间

Java Jlabel额外的可点击空间,java,swing,jlabel,windowbuilder,Java,Swing,Jlabel,Windowbuilder,我使用jlabels创建按钮,这样我就可以将图像制作成某种按钮。唯一的问题是,jlabel是正方形的,因此,如果我单击正方形中不包含图片的某个位置,它仍然会运行jlabel.mouseClickeEvent。是否有任何修复程序,或者我可以使用的其他组件 如果我单击圆圈未显示的角落,但正方形仍在那里,则事件将触发 要使用哪些修复程序/不同的组件?谢谢 如果您只是对图像使用简单的形状,则可以使用中的形状组件 ShapeComponent将只响应形状边界内的鼠标事件 否则,解决方案是覆盖JLabel的

我使用jlabels创建按钮,这样我就可以将图像制作成某种按钮。唯一的问题是,jlabel是正方形的,因此,如果我单击正方形中不包含图片的某个位置,它仍然会运行jlabel.mouseClickeEvent。是否有任何修复程序,或者我可以使用的其他组件

如果我单击圆圈未显示的角落,但正方形仍在那里,则事件将触发


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

如果您只是对图像使用简单的形状,则可以使用中的
形状组件

ShapeComponent
将只响应形状边界内的鼠标事件


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

如果您只是对图像使用简单的形状,则可以使用中的
形状组件

ShapeComponent
将只响应形状边界内的鼠标事件


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

请注意,我确保背景是透明的请注意,我确保背景是透明的transparent@CrazedCoder,我正在添加一个关于重写<代码>包含(…)>代码>方法来检查非透明像素的评论。@ CrazedCoder,我刚才正在添加一个关于重写<代码>包含(…)<代码>方法的注释来检查非透明像素。