JavaFX: событие наведения мыши для PopOver (ControlsFX) - PullRequest
0 голосов
/ 17 марта 2020

У меня есть следующий код для отображения 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");
        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);
}

Проблема в том,

  1. Я хочу, чтобы всплывающее окно отображалось при вводе мыши Метка - работает нормально.

  2. Я хочу, чтобы всплывающее окно было скрыто, когда пользователь выходит из метки, но не когда он вводит мышь во всплывающее окно.

Я добавил действия MouseEntered и MouseExited в Label, но как мне справиться с другим сценарием, в котором я не хочу скрывать всплывающее окно, если пользователь вводит мышь во всплывающее окно.

...