如何在鼠标单击时退出JavaFX全屏舞台?

时间:2018-04-18 08:26:05

标签: java javafx javafx-8

有以下关键组合方法:

stage.setFullScreenExitKeyCombination(KeyCombination.CONTROL_DOWN);

有没有办法捕获鼠标点击或触摸屏KIOSK的任意组合以退出全屏锁定?

1 个答案:

答案 0 :(得分:0)

没有内置的回调功能,但您可以使用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();
    }
}

注意:

我现在无法尝试,但在触摸屏上,我预计,使用SwipeEvent s可以采用相同的方法。