JavaFX工具提示导致鼠标弹出

JavaFX工具提示导致鼠标弹出,javafx,tooltip,Javafx,Tooltip,简单地说,当我在锚机上悬停时,我只显示按钮。我想要一个按钮的工具提示,但当鼠标悬停在工具提示上时,这会导致我离开锚机,所有东西都消失了 有什么想法吗?使用舞台悬停显示与否似乎永远不会导致按钮隐藏 //this is an AnchorPane this.addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler<MouseEvent>(){ @Override public void ha

简单地说,当我在锚机上悬停时,我只显示按钮。我想要一个按钮的工具提示,但当鼠标悬停在工具提示上时,这会导致我离开锚机,所有东西都消失了

有什么想法吗?使用舞台悬停显示与否似乎永远不会导致按钮隐藏

//this is an AnchorPane
    this.addEventHandler(MouseEvent.MOUSE_EXITED, new EventHandler<MouseEvent>(){
        @Override
        public void handle(MouseEvent event) {
        //Doesn't help: if(!micTooltip.isShowing() && !screenTooltip.isShowing())
                showButtons(false);

        }
    });
//这是一种锚烷
this.addEventHandler(MouseEvent.MOUSE_退出,new EventHandler()){
@凌驾
公共无效句柄(MouseeEvent事件){
//没有帮助:如果(!micTooltip.isShowing()&&!screenTooltip.isShowing())
显示按钮(假);
}
});
同样,输入的鼠标显示按钮。按钮上会绑定一个工具提示。

尝试以下操作:

ObservableBooleanValue hover = this.hoverProperty()
    .or(micTooltip.getScene().getRoot().hoverProperty())
    .or(screenTooltip.getScene().getRoot().hoverProperty());
hover.addListener((obs, wasHovering, isNowHovering) -> showButtons(isNowHovering));
根据您需要的具体行为,您可能需要

hover = this.hoverProperty().or(micTooltip.showingProperty()) ; 

您可能还会发现使用绑定而不是侦听器更方便:

this.getChildren().forEach(button -> button.visibleProperty().bind(hover));
(假设您希望锚定窗格的所有内容在鼠标悬停/移出时显示和消失;显然,添加内容后需要调用此行)