【问题标题】:Java - How can I check if my scene is in full screen mode?Java - 如何检查我的场景是否处于全屏模式?
【发布时间】:2023-03-20 21:46:01
【问题描述】:
@FXML
private void opensettings(ActionEvent event) throws IOException {
    Stage stage = null;
    Parent root = null;

    if(event.getSource() == settings && stage.isFullScreen() == true){
        stage = (Stage)settings.getScene().getWindow();
        root = FXMLLoader.load(getClass().getResource("fxml/Settings.fxml"));
        stage.setScene(new Scene(root));
        stage.setTitle("Settings");
        stage.setFullScreen(true);
    }
}

我不知道如何检查我当前的阶段是否以全屏模式运行。以上是我目前的java代码。

【问题讨论】:

  • stage.isFullScreen() 不工作吗?
  • 不是它的说法:原因:java.lang.NullPointerException at sample.OpenController.opensettings(OpenController.java:75) ... 58 更多
  • 在初始化阶段之前你是否打电话给stage.isFullScreen()
  • @bilesh 我现在对其进行了初始化,但它仍然从我的全场景“主窗口”跳转到非全场景“设置窗口”,实际上我希望如果我的“主窗口”处于全场景模式“设置窗口”也应该处于全场景模式...:/
  • 嗯...Window 不是Stage。根本 - 但StageWindow,而不是相反。你在那里做了很多非法铸造,这可能是你的核心问题。铸造是(非常)糟糕的 - 除了C / C ++之外的几乎任何语言,并且告诉你的每个人都只是......没有经验,充其量只是一个业余爱好者。对不起。至少做一些 checked 转换,这将阻止 NullPointerExceptionClassCastException

标签: java javafx fullscreen


【解决方案1】:

正如您在documentation 中看到的,StageWindow,但Window 不知道它的子类Stage。如果你想了解向上转换和向下转换,你应该阅读this question。 在您的情况下,Window 已构造为 Stage 存储为 Window,因此所有 Stage 特定字段现在都无效。

结论:如果您没有经验,请不要沮丧。完全没有。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多