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));
(假设您希望锚定窗格的所有内容在鼠标悬停/移出时显示和消失;显然,添加内容后需要调用此行)