当前位置: 首页 > 面试题库 >

全屏阶段在JavaFX 2.1中无法正常工作?

宋博易
2023-03-14
问题内容

我加载的第一阶段始终可以全屏正常打开。

stage.setFullScreen(true);
stage.setScene(login_scene);

但是,当我更改为另一个FXML时,应用程序将保持全屏显示(没有顶部工具栏。),但是实际视图的内容将根据FXML从根AnchorPane的prefWidth
/ prefHeight调整大小(我可以在右下角看到桌面:| ),并且希望它能动态适应我的屏幕分辨率。

谢谢。

@稍后编辑:

因此,在我的主类的start方法上,我加载了一个场景(从FXML文档创建)并将其设置为Stage(start方法的参数)。我保存此阶段供以后使用。

当我按相同阶段按下按钮时,以前保存的内容是将场景更改为另一个FXML文档

@截图:

http://tinypic.com/r/2079nqb/6-第一个场景正常工作-
来自主类的开始重写方法的代码

 @Override
  public void start(Stage stage) throws Exception {
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));

    stage.setScene(new Scene(root));
    stage.setFullScreen(true);
    stage.show();
    currentStage = stage;
  }

http://tinypic.com/r/szfmgz/6-重新加载第二个场景后-
示例控制器类中的以下代码

 @FXML
  private void handleButtonAction(ActionEvent event) throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    JavaFXApplication12.currentStage.setScene(new Scene(root));
  }

问题答案:

我不知道真正的原因,但是这里有2个快速解决方法。
handleButtonAction方法中:
1) 不要创建新场景,只需替换其内容

  @FXML
  private void handleButtonAction(ActionEvent event) throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    JavaFXApplication12.currentStage.getScene().setRoot(root);
  }

2) 如果您确实需要创建新场景,则切换全屏

  @FXML
  private void handleButtonAction(ActionEvent event) throws IOException {
    Parent root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    JavaFXApplication12.currentStage.setScene(new Scene(root));
    Platform.runLater(new Runnable() {
        @Override
        public void run() {
           JavaFXApplication12.currentStage.setFullScreen(false);
           JavaFXApplication12.currentStage.setFullScreen(true);
       }
    });
  }


 类似资料:
  • 我加载的第一阶段总是以全屏的方式正常打开。 但当我切换到另一个FXML时,应用程序将保持全屏(没有顶部工具栏..),但实际视图内容将从FXML中调整根锚窗格的PrefWidth/PrefHeight的大小(我可以在我的右下角看到桌面:),并且我希望它与我的屏幕分辨率是动态的。 多谢了。 @稍后编辑: 因此,在主类的start方法上,我加载了一个场景(从FXML文档创建),并将其设置为Stage(s

  • 问题内容: 尽管我很确定这是昨天或前一天工作的,例如,在IE10中不再起作用。我已经测试了我的浏览器,但是它不再起作用了。还有谁有相同的问题吗?或者,它永远都行不通吗? 问题答案: IE不支持输入type =“ number”,但您可以使用jQueryUISpinner小部件。它非常易于使用,并且具有许多对开发人员友好的API。

  • 有的安全措施起作用,有的不起作用。 如果我的html文件中包含以下内容: 结果是: (->但它不起作用,因为每个人都可以一直看到它) (->按预期工作) (->有效) (->正确) 正如你所看到的,其他人根本没有出现。 html标记如下所示: 我的pom.xml具有以下依赖关系: 我的SecurityConfig如下所示: 所以基本上只要和角色没有任何关系,一切都是正常的。如果它是基于角色的,那么

  • 问题内容: 工作如何? 以下代码在这里不起作用: Employee.java 地址.java persistence.xml 这是测试类……请检查城市名称,它没有在ADDRESS表中按降序存储地址值 JPAOrderByAnnotationTest 问题答案: 我认为您误解了注释的实际作用。根据javadoc: 指定在 检索 关联或集合时,将值指定为关联的集合或元素集合的元素的顺序。 [添加重点]

  • 我这里有点麻烦。我试图在我的MVC4项目中使用TinyMCE作为文本编辑器。 到目前为止,这很简单,我只需要能够正确地显示编辑器。 我有两个重要的类。 控制员: 然后是视图,这就是我试图让TinyMCE工作的地方: @{ViewBag.Title=“Index”;} 亲善 这是一些可以用TinyMCE编辑的内容。 出于某种原因,结果是这样的:它看起来如何 知道为什么我没有从TinyMCE获得任何功

  • 我对全屏舞台有意见。我有一个主阶段,当应用程序启动时立即进入全屏,然后当用户调用特定事件时,我创建第二阶段,它也是全屏的,但它显示图像,其背景是透明的,所以主阶段及其内容仍然可见。 问题是当我显示这个新的舞台并将其设置为全屏模式时,它会使我的主舞台退出全屏模式并调整大小。 主要舞台的创作: 新阶段的创建: