如何在鼠标单击时退出 JavaFX 全屏阶段?

How to exit JavaFX fullscreen stage on mouse click?

有如下组合键方式可用:

stage.setFullScreenExitKeyCombination(KeyCombination.CONTROL_DOWN);

有什么方法可以捕获鼠标点击或触摸屏 KIOSK 的任意组合来退出全屏锁定吗?

没有内置回调,但您可以简单地使用 EventFilter:

primaryStage.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> {
    if (primaryStage.isFullScreen() && event.isShortcutDown() && event.isPrimaryButtonDown()) {
        primaryStage.setFullScreen(false);
        event.consume();
    }
});

示例:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

public class FullScreen extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {

        primaryStage.addEventFilter(MouseEvent.MOUSE_PRESSED, event -> {
            if (primaryStage.isFullScreen() && event.isShortcutDown() && event.isPrimaryButtonDown()) {
                primaryStage.setFullScreen(false);
                event.consume();
            }
        });

        primaryStage.setScene(new Scene(new StackPane()));
        primaryStage.setFullScreen(true);
        primaryStage.show();
    }
}

注:

我现在无法尝试,但我希望在触摸屏上使用 SwipeEvents 可以使用相同的方法。