当前位置: 首页 > 知识库问答 >
问题:

全屏切换场景

闾丘英悟
2023-03-14

我在这里阅读了几个与我的问题相关的问题/解决方案。但似乎什么都不管用。

所以我有一个全屏模式的primarystage,比如说,如果我点击一个按钮,它会改变场景。但舞台似乎显示了任务栏。我还通过将此添加到所有场景方法中解决了此问题。。

stage.setFullScreen(false);
        stage.setFullScreen(true);

但是,场景中的过渡不是那么流畅。首先,它进入桌面,然后回到全屏...这不是理想的解决方案。

以下是我的初级阶段代码:

 public static Stage stage;
private static AnchorPane mainLayout;

@Override
public void start(Stage primaryStage) throws IOException 
    {

        Main.stage = primaryStage;
        Main.stage.setTitle("Raven App");
        stage.initStyle(StageStyle.UNDECORATED);
        stage.setFullScreen(true);
        stage.setFullScreenExitKeyCombination(KeyCombination.NO_MATCH);
        Main.showMain();

    }

这是我改变场景的代码:

   public static void UserLogin() throws IOException
{



        FXMLLoader loader=new FXMLLoader();
        loader.setLocation(Main.class.getResource("page/UserHomeLogin.fxml"));
        mainLayout=loader.load();
        Scene scene=new Scene(mainLayout);
        stage.setScene(scene);
        stage.show();


    } 

我不知道这是虫子还是什么。但我想如果你把你的初级阶段设置成全屏。无论场景如何,都应该全屏显示。

此外,如果我在全屏模式下有一个主要阶段...和一个次要阶段不在全屏模式。如果我点击一个按钮来显示次要阶段,主要阶段似乎会消失。我想在初级阶段的顶部显示辅助页面,除非关闭辅助页面,否则初级阶段不应该是可点击的。

显示第二阶段的我的代码:

 public static void PasswordVerify() throws IOException
{


Stage stage = new Stage();
Parent root = FXMLLoader.load(Main.class.getResource("page/PassConfirm.fxml"));
stage.setScene(new Scene(root));
stage.setTitle("popup window");
stage.initModality(Modality.APPLICATION_MODAL);
stage.showAndWait();
stage.show();


    }

共有1个答案

蔡明贤
2023-03-14

不创建新场景,只需更改现有场景的根:

public static void UserLogin() throws IOException {
    FXMLLoader loader=new FXMLLoader();
    loader.setLocation(Main.class.getResource("page/UserHomeLogin.fxml"));
    mainLayout=loader.load();
    stage.getScene().setRoot(mainLayout);
    // or just 
    // scene.setRoot(mainLayout);
    // if you already have a reference to the scene
} 

你问的第二件事是不可能的。在JavaFX中,在许多平台上,“全屏模式”实际上被实现为“专属屏幕模式”;所以有一个独特的窗口可见。所以你需要另一个完全解决这个问题的方法,根本不需要显示一个新窗口。

 类似资料:
  • 当我运行该程序时,它加载第一个和第二个fxml,但继续显示第一个fxml(当它应该显示第二个时)。我可以使用相同代码的输入(即按钮)从第一个屏幕到第二个屏幕。 我尝试使用不同的加载器,每次设置场景时都使用。show()方法,但这些(或它们的许多变体)都不起作用。 我在调用方法时进行打印--这就是我确定它们被加载的方式(printline): null 相反,输出(在调试中,如果stage.show

  • 开始一个新游戏,改变关卡,或结束游戏时,为了给用户不同的效果呈现,大多需要切换不同的场景。Cocos2d-x 提供了一系列方式去做这件事情 场景切换。 场景切换的方式 有很多场景切换的方式,每种都有特定的方法,让我们来看看: auto myScene = Scene::create(); runWithScene() 用于开始游戏,加载第一个场景。只用于第一个场景! Director::getI

  • 在libGDX中切换屏幕似乎有问题。它会切换到游戏屏幕,但不会切换回主屏幕,也不会切换到屏幕上的游戏。我的游戏课: 我的GameScreen类(实现屏幕): 这就是我如何更改屏幕(不工作): 你可以在这里找到全部来源。

  • 我是JavaFX的新手。我有我的主要场景和次要场景;当我从第一个场景切换到第二个场景时,窗口的条形图变得可见。我该怎么解决呢?

  • 我在class1中创建了一个场景,然后在Class2中创建了一个scene2。如何在两者之间切换? 这是第二节课,我有另一个场景。