码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-12-25 14:36:00      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:事件   ted   解决方案   透明   span   蓝色   imageview   nbsp   view   

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的鼠标事件对于带有透明的图片在部分区域无效

标签:事件   ted   解决方案   透明   span   蓝色   imageview   nbsp   view   

原文地址:https://www.cnblogs.com/chenxinyuan/p/12096457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!