我正在尝试制作一个在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包含当前鼠标坐标时,将触发该事件。

07-26 07:40