JavaFX 在 ImageView 中显示像素的 RGB 值

JavaFX show RGB value for pixel in ImageView

我正在尝试制作一个在其 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 的顶部创建某种 table 或网格以显示数组中的 RGB 颜色,但这似乎不正确。

JavaFX 中是否有任何方法可以检测 ImageView(或任何其他视图)的每个像素上的鼠标悬停事件?

您可以使用 onMouseMoved 事件处理程序:

.setOnMouseMoved(event->{
    System.out.println("x: "+event.getX()+"; y: "+event.getY());
});

鼠标在节点上移动时触发,event包含当前鼠标坐标。