Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaFX-如何将创建的控件存储在FXML文件中_Java_Javafx_Scenebuilder - Fatal编程技术网

JavaFX-如何将创建的控件存储在FXML文件中

JavaFX-如何将创建的控件存储在FXML文件中,java,javafx,scenebuilder,Java,Javafx,Scenebuilder,我不确定这是否与我的问题相同,但我还是决定问。如果是,我道歉,并将删除此如果需要 我的问题是,如果我让用户创建一个新字段,然后在我的代码中,该字段被生成并显示在场景中,一旦用户关闭应用程序并重新打开它,该字段就会消失 是否有办法将该字段保存到main.fxml文件中,还是必须将该字段的数据保存到数据库中,然后在用户每次重新打开应用程序时动态重新创建?如果是后者,SceneBuilder是如何做到的?“如果我让用户创建一个新字段,然后在我的代码中,该字段将生成并显示在场景中,一旦用户关闭应用程序并

我不确定这是否与我的问题相同,但我还是决定问。如果是,我道歉,并将删除此如果需要


我的问题是,如果我让用户创建一个新字段,然后在我的代码中,该字段被生成并显示在场景中,一旦用户关闭应用程序并重新打开它,该字段就会消失


是否有办法将该字段保存到
main.fxml
文件中,还是必须将该字段的数据保存到数据库中,然后在用户每次重新打开应用程序时动态重新创建?如果是后者,SceneBuilder是如何做到的?

“如果我让用户创建一个新字段,然后在我的代码中,该字段将生成并显示在场景中,一旦用户关闭应用程序并重新打开它,该字段将消失”。您可能希望编辑问题以添加一个用于此目的的字段,以便更容易理解和准确复制您正在执行的操作。“是否有方法将该字段保存到main.fxml文件中,或者我必须保存该字段的数据”。保存“创建的控件”和在字段中保存数据是完全不同的事情。你是在尝试一个或另一个,还是两者兼而有之?字段中的数据是否会根据用户输入、数据库值或其他方式动态更改,还是只是一些静态常量?Scene Builder是一种专门设计用于简化FXML文件创建的开发工具。它“简单”让您可以直观地设计场景图,然后将结构保存在FXML文件中。然后获取FXML文件,将其添加到应用程序的资源中,最后在运行时通过
FXMLLoader
加载/解析它。FXML文件嵌入到应用程序中后,必须将其视为只读,与所有资源相同。换句话说,除非您正在创建另一个视图,否则“Scene Builder是如何实现的”可能与此无关。也就是说,并非所有视图都可以在FXML文件中完全实现。如果您的视图像您所说的那样是动态的,那么其中一些视图可能需要在控制器中动态创建。现在,向UI中添加字段不应该在真空中进行;您的应用程序应该有某种模型(请参阅MVC、MVVM等),对其进行更新会导致视图添加一个字段。换句话说,字段应该“链接”到某个对象。然后,您可以保存模型,当您重新运行应用程序时,加载模型并根据其状态创建视图。fxml文件是一个xml文件(假设您不从其他来源(如通过网络或jar条目)加载它。理论上,您可以用新结构覆盖此文件,但这是最复杂的DB方法(在这种情况下,无论你认为什么是DB;这可能不是SQL数据库,例如CSV文件或更简单的文本文件)将非常简单地实现。