java - Jlabel 额外可点击空间

标签 java swing jlabel windowbuilder

我使用 jlabel 创建按钮,因此我可以将图像制作成某种按钮。唯一的问题是,jlabel 是正方形的,因此如果我单击正方形内不包含图片的某个位置,它仍然会运行 jlabel.MouseClickEvent。有没有解决这个问题的方法,或者我可以使用的其他组件?

例如。如果我点击this在圆没有显示的角落,但正方形仍然存在,然后事件触发。

有任何修复/使用不同的组件吗?谢谢!

最佳答案

如果您只是对图像使用简单的形状,那么您也许可以使用 Playing With Shapes 中的 Shape Component .

ShapeComponent 将仅响应 Shape 边界内的鼠标事件。

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

关于java - Jlabel 额外可点击空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881722/

相关文章:

java - 在启动时中止 java webapp

java - 使用 java swing 绘制笔画...笔画不显示

java - 在 JDateChooser 上隐藏或禁用过去的日期

java - 为什么我的 JTable 没有出现?

java - JLabel 上的翻转由网格布局中的图像组成?

java - 如何使用 OPCPackage POI 读取特定工作表

java - 为什么调用错误的方法是: Strange inheritance behaviour

java - 使用FileOutputStream复制文件,编译时找不到符号

java - 如何在 Java 中创建要打印到 JFrame 的 JLabel 数组

java - JLabel 仅在调整窗口大小后出现在 JFrame 中