我使用 jlabel 创建按钮,因此我可以将图像制作成某种按钮。唯一的问题是,jlabel 是正方形的,因此如果我单击正方形内不包含图片的某个位置,它仍然会运行 jlabel.MouseClickEvent。有没有解决这个问题的方法,或者我可以使用的其他组件?
例如。如果我点击this在圆没有显示的角落,但正方形仍然存在,然后事件触发。
有任何修复/使用不同的组件吗?谢谢!
最佳答案
如果您只是对图像使用简单的形状,那么您也许可以使用 Playing With Shapes 中的 Shape Component
.
ShapeComponent
将仅响应 Shape 边界内的鼠标事件。
否则,解决方案是重写 JLabel 的 contains(...)
方法来检查鼠标点是否位于图像的边界内,或者在您的情况下,该像素是否位于该边界内位置不透明。
关于java - Jlabel 额外可点击空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881722/