全屏更改场景



我在这里阅读了几个与我的问题相关的问题/解决方案。 但似乎没有任何效果。

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

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();

}

无需创建新场景,只需更改现有场景的根目录:

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中,在许多平台上,"全屏模式"实际上被实现为"独占屏幕模式";所以有一个独特的窗口可见。因此,您将需要另一种解决方案,该解决方案根本不涉及显示新窗口。

相关内容

  • 没有找到相关文章

最新更新