我正在尝试制作一个在GUI中包含许多元素的应用程序,而我正在使用JavaFX来制作一个。我偶然发现了一个问题,我无法真正检测出何时用鼠标将ImageView中的像素悬停了。
我已经尝试使用CSS的hbox包含:
#hbox:hover {
-fx-background-color: #FFFFFF;
}
而且...我知道这很愚蠢,但至少尝试过:
if (hboxImage != null /*&& hboxImage.isHover()*/) {
hboxImage.setOnMouseClicked(event -> {
double i = hboxImage.getX();
double j = hboxImage.getY();
System.out.println("i: " + i + " j: " + j);
});
}
我知道这并不能很好地完成我需要做的事情,但这是我发现悬停时唯一的优点。
我正在考虑在ImageView的顶部创建某种表格或网格以向我显示数组中的RGB颜色,但这似乎并不正确。
JavaFX中是否有任何方法可以检测ImageView(或其他相关视图)的每个像素上的鼠标悬停事件?
最佳答案
您可以使用onMouseMoved
事件处理程序:
.setOnMouseMoved(event->{
System.out.println("x: "+event.getX()+"; y: "+event.getY());
});
当鼠标在节点上移动并且
event
包含当前鼠标坐标时,将触发该事件。