如何在鼠标单击时退出 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();
}
}
注:
我现在无法尝试,但我希望在触摸屏上使用 SwipeEvent
s 可以使用相同的方法。
有如下组合键方式可用:
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();
}
}
注:
我现在无法尝试,但我希望在触摸屏上使用 SwipeEvent
s 可以使用相同的方法。