Plusieurs étapes JavaFX en mode plein écran
j'ai une application qui contient deux étapes qui devraient être affichées sur deux écrans différents en mode plein écran. J'ai réussi à positionner les deux étapes sur des écrans séparés, et j'ai essayé de mettre la propriété fullscreen à true sur chaque étape, mais seulement d'entre eux est montré sans décoration. Il est toujours celui qui a la propriété fullscreen dernier qui est affiché en mode plein écran.
N'est-il pas possible dans JavaFX 2.2 d'avoir plusieurs étapes en mode plein écran au même moment de temps?
1 réponses
j'ai aussi rencontré ce problème et j'ai trouvé une solution facile(contournement):
nous avons d'Abord besoin de l'id du moniteur principal:
int primaryMon;
Screen primary = Screen.getPrimary();
for(int i = 0; i < Screen.getScreens().size(); i++){
if(Screen.getScreens().get(i).equals(primary)){
primaryMon = i;
System.out.println("primary: " + i);
break;
}
}
après cela nous entrons et montrons la scène principale. Il est important de le faire sur le moniteur primaire (pour cacher les barres de tâches et autres).
Screen screen2 = Screen.getScreens().get(primaryMon);
Stage stage2 = new Stage();
stage2.setScene(new Scene(new Label("primary")));
//we need to set the window position to the primary monitor:
stage2.setX(screen2.getVisualBounds().getMinX());
stage2.setY(screen2.getVisualBounds().getMinY());
stage2.setFullScreen(true);
stage2.show();
maintenant la partie de contournement. Nous créons les étapes pour les autres moniteurs:
Label label = new Label("monitor " + i);
stage.setScene(new Scene(label));
System.out.println(Screen.getScreens().size());
Screen screen = Screen.getScreens().get(i); //i is the monitor id
//set the position to one of the "slave"-monitors:
stage.setX(screen.getVisualBounds().getMinX());
stage.setY(screen.getVisualBounds().getMinY());
//set the dimesions to the screen size:
stage.setWidth(screen.getVisualBounds().getWidth());
stage.setHeight(screen.getVisualBounds().getHeight());
//show the stage without decorations (titlebar and window borders):
stage.initStyle(StageStyle.UNDECORATED);
stage.show();