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