javafx的鼠标事件对于带有透明的图片在部分区域无效

Posted chenxinyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javafx的鼠标事件对于带有透明的图片在部分区域无效相关的知识,希望对你有一定的参考价值。

JavaFX ImageView 中存储一个带有透明区域的图片时,当鼠标位于透明区域上方时,点击或拖拽并不会触发鼠标事件。

例如我有一个这样的图标技术图片,通过代码添加到 ImageView 中,并注册点击事件。

TreeItem treeItem = new TreeItem();
ImageView imageView = new ImageView(new Image("/lin.png"));
treeItem.setGraphic(imageView);
imageView.setOnMouseClicked(e -> {
  Node node = e.getPickResult().getIntersectedNode();
});

当鼠标在图片中的蓝色区域点击时会触发事件,但在图片的外包矩形中,蓝色区域外的透明部分点击,就不会触发。

 

正确的解决方案是:ImageView 设置 setPickOnBounds 为 true。

imgeView.setPickOnBounds(true);

以上是关于javafx的鼠标事件对于带有透明的图片在部分区域无效的主要内容,如果未能解决你的问题,请参考以下文章

as3 判断鼠标在非透明区域点击图片

C#如何让窗体中间一部分让鼠标透过

pictureBox使用总结

如何突出显示带有孩子的 div(带有部分不透明层?)就像雅虎邮件一样,参见图片

如何使绝对定位的图像区域地图可以用鼠标点击?

为啥 javafx 会破坏我的半透明游标?