JavaFX:PopOver的鼠标悬停事件(ControlsFX)
我有下面的代码来显示一个PopOverJavaFX:PopOver的鼠标悬停事件(ControlsFX),javafx,mouseevent,popover,controlsfx,Javafx,Mouseevent,Popover,Controlsfx,我有下面的代码来显示一个PopOver @Override public void start(Stage primaryStage) { try { Label lblName = new Label("Tetsing name"); Label lblStreet = new Label("Some street name"); Label lblCityStateZip = new Label("Some city, 111111"
@Override
public void start(Stage primaryStage) {
try {
Label lblName = new Label("Tetsing name");
Label lblStreet = new Label("Some street name");
Label lblCityStateZip = new Label("Some city, 111111");
VBox vBox = new VBox(lblName, lblStreet, lblCityStateZip);
PopOver popOver = new PopOver(vBox);
Label label = new Label("Mouse mouse over me");
label.setOnMouseEntered(mouseEvent -> {
popOver.show(label, -3);
});
label.setOnMouseExited(mouseEvent -> {
if (popOver.isShowing()) {
popOver.hide();
}
});
StackPane root = new StackPane();
root.getChildren().add(label);
Scene scene = new Scene(root, 300, 250);
primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.setOnCloseRequest((WindowEvent event) -> {
System.exit(0);
});
primaryStage.show();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
问题是,
我已经在标签上添加了MouseEntered和MouseExited操作,但如何处理另一种情况,即如果用户将鼠标输入弹出窗口,我不想隐藏弹出窗口。解决方法之一是删除
setOnMouseExited
事件处理程序并执行popOver.setCloseButtonEnabled(true);popOver.SetHeaderWaysVisible(真)代码>。这是否回答了您的问题?你创建了一个新帐户吗?@Sedrick如果没有,他们几乎一字不差地复制了另一个问题…@Sedrick感谢你的一些解决方法,但它并没有解决我的问题。我需要鼠标移到这个标签上。问题是,当输入popOver时,我会离开标签(MouseExited),这就是它关闭popOver的原因。