是否可以将新节点或父节点添加到javafx中已加载的fxml文件中?

是否可以将新节点或父节点添加到javafx中已加载的fxml文件中?,javafx,Javafx,我最近正在编写一个javafx应用程序,其中一个部分是客户机必须等待服务器获取人员列表,在获取列表后,必须在将要添加到父级的listview中使用该列表。该父级是和fxml文件,加载后,我想知道是否可以将包含listview的vbox添加到父级。如果有人能帮助我,我将不胜感激……从您的问题中,我推断您不熟悉控制器的概念或由FXMLLoader执行的相关FXML注入。介绍了JavaFX生命周期的基本知识,但首先介绍了加载FXML文件时涉及的过程的基本知识。如果要修改通过FXML加载的场景图,则需要

我最近正在编写一个javafx应用程序,其中一个部分是客户机必须等待服务器获取人员列表,在获取列表后,必须在将要添加到父级的listview中使用该列表。该父级是和fxml文件,加载后,我想知道是否可以将包含listview的vbox添加到父级。如果有人能帮助我,我将不胜感激……

从您的问题中,我推断您不熟悉控制器的概念或由
FXMLLoader执行的相关FXML注入。介绍了JavaFX生命周期的基本知识,但首先介绍了加载FXML文件时涉及的过程的基本知识。如果要修改通过FXML加载的场景图,则需要使用带有相应
FXML
注释字段的控制器类。例如,假设您的家长是一个
边框窗格
。在FXML文件中,您将有:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.BorderPane?>

<BorderPane fx:id="parent" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/10.0.1" 
        fx:controller="some.package.YourController">

    <top>
        <!-- maybe have something like a MenuBar here -->
    </top>

    <bottom>
        <!-- maybe have a some type of status bar here -->
    </bottom>

</BorderPane>
package some.package;

import javafx.scene.layout.BorderPane;
import javafx.fxml.FXML;

public class YourController {

    @FXML
    private BorderPane parent; // field name matches the fx:id attribute

    @FXML
    private void initialize() {
        // do any initializing if needed (if not, get rid of this method)
        // you can access and modify any FXML injected field from this method
    }

}
然后可以通过控制器实例使用父级。您还可以在控制器中创建和链接事件处理程序方法,并根据用户操作执行某些行为。但是,需要注意的是,如何更改控制器中UI的状态取决于如何访问模型类。您需要将模型提供给您的控制器,并可能在多个控制器之间共享该模型。关于如何实现这一点,Stack Overflow上已经有相当多的问题/答案


下面是另一个可以帮助您的资源:。

使用
fxmloader
+fxml只是创建场景的一种方法。生成的对象结构与通过在java代码中创建相同对象结构创建的场景没有什么不同。场景也可以用同样的方式修改。非常感谢