2
我有一個JavaFX的奇怪問題,看起來很像一個錯誤。我要做到以下幾點:使用JavaFX進入和退出應用程序
- 進入fullscren開始時,我的應用程序
- 按Escape退出該應用程序(非全屏,整個應用程序)
到目前爲止,我有以下代碼:
public class AppTest extends Application {
public static void main(String[] args) {
launch(args);
}
public void start(Stage stage) {
stage.setOnCloseRequest(t -> {
Platform.exit();
System.exit(0);
});
stage.setFullScreenExitHint("Press ESCAPE to exit");
stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
stage.setFullScreen(true);
Rectangle2D screenBounds = Screen.getPrimary().getBounds();
stage.setX(screenBounds.getMinX());
stage.setY(screenBounds.getMinY());
double screenWidth = screenBounds.getWidth();
double screenHeight = screenBounds.getHeight();
stage.setWidth(screenWidth);
stage.setHeight(screenHeight);
Group root = new Group();
Scene scene = new Scene(root);
stage.setScene(scene);
scene.setOnKeyTyped(event -> {
if(event.getCode() == KeyCode.ESCAPE) {
stage.close();
}
});
Canvas canvas = new Canvas(screenWidth, screenHeight);
root.getChildren().add(canvas);
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.setFill(Color.BLUE);
gc.fillRect(0,0, screenWidth, screenHeight);
stage.show();
}
}
我在macOS上。
一般來說它會變成全屏。我一般說,因爲這個代碼的真正版本並不總是。有時候,它只是一個最大化的窗口。
然後,當按下轉義,我得到一個最大化的窗口,而不是退出應用程序。
我該如何解決這個問題?
我非常接近:-)而對於其他人,我會確認'NO_MATCH'是必需的。否則,它不會退出應用程序。 – Henri