gpt4 book ai didi

fullscreen - 全屏模式下有多个JavaFX阶段

转载 作者:行者123 更新时间:2023-12-04 03:59:13 25 4
gpt4 key购买 nike

我有一个包含两个阶段的应用程序,应分别以全屏模式显示在两个不同的屏幕上。我设法将两个舞台放置在单独的屏幕上,并尝试在每个舞台上将全屏属性设置为true,但只显示了其中的两个而没有进行修饰。总是最后一个设置全屏属性的设备以全屏模式显示。

在JavaFX 2.2中是否不可能同时在全屏模式下具有多个阶段?

最佳答案

我也遇到了这个问题,发现了一个简单的解决方案(解决方法):

首先,我们需要主监视器的ID:

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;
}
}

此后,我们初始化并显示主要阶段。在主监视器上执行此操作非常重要(用于隐藏任务栏等)。
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();

现在,解决方法部分。我们为其他监视器创建阶段:
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();

关于fullscreen - 全屏模式下有多个JavaFX阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13030556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com