关于docs问题,我想知道是否可以在同一个应用程序中为不同的控制器使用这两种方法。
这是,如果不在外部访问控制器,我会使用fx:controller,如果需要从外部访问,我会使用setController()方法。
答案 0 :(得分:2)
不,您可以使用任一方法访问所有控制器方法,前提是方法为public
(或任何有效的适当访问者)。
当您的控制器具有非默认构造函数时,使用FXMLLoader::setController()
方法很有用。这在您提到的StackOverflow帖子中有所介绍。
如果您通过fx:controller
设置了控制器类,则可以通过FXMLLoader::getController()
检索控制器实例,并且可以调用该控制器使用该实例的任何方法。