JavaFX节点未注册鼠标事件

JavaFX节点未注册鼠标事件,java,javafx,event-handling,Java,Javafx,Event Handling,我准备为这件事大发雷霆。我正在开发游戏GUI界面,它有一个由网格单元组成的地图 单元格网格由一个StackPane和几个层组成,其中包括ImageView或Shapes等 整个内容包含在GridPane中,GridPane包含BorderPane的中心元素 我无法将鼠标事件添加到基础场景中,因为这样所有节点都会得到它->不好。我需要突出显示鼠标下的节点 以下是创建堆栈的代码: private void initializePanes() { myParent = new StackPan

我准备为这件事大发雷霆。我正在开发游戏GUI界面,它有一个由网格单元组成的地图

单元格网格由一个StackPane和几个层组成,其中包括ImageView或Shapes等

整个内容包含在GridPane中,GridPane包含BorderPane的中心元素

我无法将鼠标事件添加到基础场景中,因为这样所有节点都会得到它->不好。我需要突出显示鼠标下的节点

以下是创建堆栈的代码:

private void initializePanes() {
    myParent = new StackPane();
    myObjectLayer = new StackPane();
    myOverlayLayer = new StackPane();
    myParent.getChildren().addAll(myObjectLayer, myOverlayLayer);
    myParent.getStylesheets().add(myConfig.getString("StyleSheet"));
}
下面是设置EventHandler->nothing works或registers的代码。我也尝试过EventFilters——没有骰子,除非我写下底层场景,这是不可能的

private void initializeHandlers() {
    myParent.addEventHandler(MouseEvent.ANY, (e) -> System.out.println("I'm responding"));  
}
谢谢你的帮助

编辑:问题是,整个应用程序的布局如下:

边框窗格: 中心->堆叠窗格 在这个stackpane中,我有一个ScrollPane,其中包含一个GridPane,其中包含单元格(我在上面发布了代码)


我对JavaFX有些陌生,所以这可能不是一个好方法。但由于某些原因,鼠标事件不会通过底层的stackpane->,即它们会被borderpane的中心面板吸收。我无法将事件处理程序添加到滚动窗格、网格窗格或网格窗格中的任何单元格中。

已经解决了。
映射的主堆栈窗格中还有另一层->它正在拦截调用。删除它-我将在以后找出如何实现它。

您发布的代码片段没有任何错误:错误可能是您设置的方式造成的,但是如果没有看到,任何人都无法提供帮助。你需要创建一个新的主题和你的问题来包含它。如果你不发布MCVE,回答这个问题将非常困难。您可以尝试使
myObjectLayer
myOverlayLayer
鼠标透明(
setMouseTransparent(true)
),或者尝试将鼠标处理程序注册到
myOverlayLayer
而不是
myParent
。不过,我也不知道这些是否有效。对不起,我正在做一个,我不想发布一大堆的课程。奇怪的是,如果我在一个测试类中把东西层层叠加,效果会很好:(所以我试着尽可能简单地复制它)。