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

JavaFX:阶段和控制器生命周期...内存管理

潘弘壮
2023-03-14
private void addNewAsset(ActionEvent event) {
    AssetController assetController = new AssetController();
    FXMLLoader loader = new FXMLLoader(getClass().getResource("assetchooser.fxml"));
    loader.setController(assetController);

    Stage assetChooserStage = new Stage();
    assetChooserStage.initModality(Modality.WINDOW_MODAL);
    assetChooserStage.initOwner(listviewAssets.getScene().getWindow());
    assetChooserStage.setTitle("Choose Asset(s)");
    try {
        assetChooserStage.setScene(new Scene((Parent)loader.load()));
    } catch (IOException e) {
        e.printStackTrace();
    }

    assetChooserStage.show();
    assetChooserStage.setOnCloseRequest((windowEvent)->{
        //DO STUFF: Get any data
        List<AssetChosenData> listAssets = assetController.getListAssetChosen();

        System.out.println("CLOSING");}
    );
}

共有1个答案

单耘豪
2023-03-14

这只是默认的Java行为:

您正在创建对象,如果您不再保留对它们的(强)引用,它们将被垃圾回收

在您的示例中,您只在本地作用域(方法)中创建对象,否则不存储任何对象。

 类似资料:
  • Flex应用程序的生命周期 虽然,您可以在不了解应用程序的生命周期阶段的情况下构建Flex应用程序,但了解基本机制是很好的。 事情发生的顺序。 它将帮助您配置功能,例如在运行时加载其他Flex应用程序,以及管理在运行时加载和卸载类库和资产的过程。 充分了解Flex应用程序生命周期将使您能够构建更好的应用程序并对其进行优化,因为您将知道在何处优化运行代码。 例如,如果您需要确保在预加载器期间运行某些

  • 如果我编写一个简单的servlet应用程序,那么在我的servlet类中,我将扩展http servlet。这让容器知道我的类是一个servlet,它将管理servlet的“生命周期”。init、doget()、destroy()等。 但是Spring MVC framweock控制器类不扩展任何servlet类。它是一个有自己自定义方法的POJO。现在我可以使用请求映射单独调用这些方法。 但是,

  • 这在我做项目的笔记本电脑上工作,而在另一台笔记本电脑上抛出一个错误。错误代码为 格式:或:[:]:.可用的生命周期阶段有:验证、初始化、生成源、过程源、生成资源、过程资源、编译、过程类、生成测试源、过程测试源、生成测试资源、过程测试资源、测试编译、过程测试类、测试、准备包、包、集成前测试、集成测试、集成后测试、验证、安装、部署、预清理、清理、清理后、站点前、站点后、站点部署。->[帮助1][ERR

  • 我可以禁用POM中的特定阶段:Maven生命周期中的禁用阶段。可以从命令行禁用test:是否可以从特定阶段开始mvn生命周期,例如只使用命令行选项编译?

  • 生命周期及窗口控制 概念描述 在Nebula容器中开发H5App,首先必须要理解H5App的生命周期和窗口控制的基本概念。 为了方便理解,在这里我们可以用PC端的chrome浏览器来做概念参考。 appId 支付宝客户端内的应用id,用于让框架知晓需要启动哪个H5App,并且加载这个H5App默认的启动参数和离线包。 启动参数 当H5App启动时或者运行时,可以通过配置一些参数来控制某些特性,比如

  • 我已经用maven创建了一个java项目。在我的项目(src/main/resources下)中,有一些资源文件我想复制到目标/类中。 我在pom xml中添加了以下行: 当我运行mvn资源时:通过命令行获取的资源文件正在复制到目标/类中(因此生命周期中的资源阶段正在工作)。然而,当我在cmd中输入mvn install:install时,资源文件并没有被复制到目标/类中。 我得到: 生命周期中的