如何访问我通过javafx场景生成器创建的vbox?

如何访问我通过javafx场景生成器创建的vbox?,java,javafx,Java,Javafx,我已从场景生成器添加了一个vbox,并将其可见性设置为false。基于某些条件,我希望将可见性设置为true。我该怎么做 我也是java新手,所以我无法解决root.getChildren()的问题,因为它会引发编译错误,getChildren()在父级中具有受保护的访问权限。你能帮忙吗?这需要三个步骤 在FXML文件中定义控制器Java类。在SceneBuilder中或直接在XML中 在控制器中定义字段VBox,并用@FXML对其进行注释,并在XML中使用其名称,如fx:id。这将告诉Java

我已从场景生成器添加了一个vbox,并将其可见性设置为false。基于某些条件,我希望将可见性设置为true。我该怎么做

我也是java新手,所以我无法解决root.getChildren()的问题,因为它会引发编译错误,getChildren()在父级中具有受保护的访问权限。你能帮忙吗?

这需要三个步骤

  • 在FXML文件中定义控制器Java类。在SceneBuilder中或直接在XML中
  • 在控制器中定义字段VBox,并用
    @FXML
    对其进行注释,并在XML中使用其名称,如
    fx:id
    。这将告诉JavaFX使用正确的VBox实例绑定字段
  • 使用VBox执行任何您想要的操作
  • XML定义(注意
    fx:controller
    fx:id
    ):

    如果您想从外部调用控制器类,您将从右侧的
    fxmloader
    实例获得控制器实例,如下所示:

       MainController controller = (MainController) loader.getController();
    

    如果(条件)vbox.setVisible(true),则
    是否有问题?您好,谢谢,我不是从代码(扩展应用程序的类)添加vbox。我从scene builder中添加了它,所以我需要以某种方式掌握这个特定的vbox实例/ID,然后设置它的可见性。如果我从代码中将vbox添加到场景中,您提供的代码将起作用,但我不想这样做,因为从场景生成器添加它更容易。我还了解到,我们可以通过使用反射来实现这一点,并且也了解到了一些反对它的观点,因此目前还不确定。为了更好地帮助我们,请尽快发布一个Hi,谢谢。不确定这是不是正确的方法;public void start(Stage Stage)引发异常{Parent root=fxmloader.load(getClass().getResource(“Window.fxml”);Scene Scene=new Scene(root,500500);Stage.setScene(Scene);Stage.show();//现在基于某些条件,我想让在Window.fxml中创建的vbox对用户可见//我该怎么做?很抱歉,我无法以正确的格式添加代码
    
        public class MainController {
              @FXML
              private VBox content;
        }
    
       MainController controller = (MainController) loader.getController();