Je souhaite qu'un javafx.stage.Stage
soit en mode plein écran sur macOS sans barre de menu (natif) visible. Aussi je veux que le dock n'est pas disponible pendant que l'application est en mode plein écran. J'ai un Stage
et j'ai réglé stage.setFullScreen(true)
. Si le style de ma scène est défini sur stage.initStyle(StageStyle.UNDECORATED)
, l'application affiche la barre de menus native et le dock. Par conséquent, l'intégralité de l'écran n'est pas disponible pour l'application.JavaFX Real Plein écran sur macOS
Si je mets le style à stage.initStyle(StageStyle.UTILITY)
la barre de menu est pas visible, mais il y a une zone grise.
Et si je déplace le curseur où habituellement est placé la barre de menus, la barre de menu se manifestera en outre avec un petit bouton de fermeture et un petit bar.
également Si je curseur de la souris vers le bas où le quai est placé, le quai sera affiché lui-même.
Comment puis-je obtenir une vraie application en plein écran sans barre de menu ni barre d'affichage et aucune barre grise en haut pour que mon application puisse utiliser toute la taille de l'écran?
code
import javafx.application.Application;
import javafx.geometry.Rectangle2D;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Screen;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class Fullscreen extends Application {
@Override public void start(Stage stage) throws Exception {
AnchorPane pane = new AnchorPane();
Scene scene = new Scene(pane);
pane.setStyle("-fx-background-color: blue");
stage.initStyle(StageStyle.UTILITY);
stage.setFullScreen(true);
stage.setScene(scene);
stage.show();
//stage.setHeight(stage.getHeight() + 16);
//stage.setY(-16);
}
}
Annotation
Si je mets stage.setHeight(stage.getHeight() + 16)
et stage.setY(-16)
après stage.show()
et le style est mis à stage.initStyle(StageStyle.UTILITY)
, la barre grise n'est plus visible. Mais cela ne semble pas être une bonne solution pour moi car cela dépend de la taille de l'écran (dans mon cas 2560x1440) et je ne sais pas exactement comment obtenir la taille de la barre grise. Aussi la barre de menu et le quai sont disponibles.
L'utilisation du StageStyle.Decorated fonctionne également pour moi. Ma faute était d'utiliser le style non décoré parce que je pensais que pour mon application en plein écran, je n'ai pas besoin de décorations. Mais n'y a-t-il vraiment aucun moyen de se débarrasser de la barre de menu et du dock? Si vous regardez les jeux d'ordinateur, il n'y a pas non plus de barres de menu et de docks. Mais il y a surtout écrit en C ou C++. N'y a-t-il pas de solutions de contournement pour Java? – Yakuhzi
@Tazmo yep, en utilisant la valeur par défaut ('DECORATED') est très bien comme le démontre MWE. Malheureusement, je ne connais aucune solution qui supprime la barre de menu native pour une expérience de jeu vidéo. – beatngu13