
为什么不?Controller是一个抽象类,除非您有意让他知道,否则他不了解UI。
节点(包括AnchorPane)是另一个故事,它们几乎不存在于场景图的外部。因此,最好向Node询问有关其父母或场景的信息。
如果您仍然想单独处理,则有以下方法:
- 您可以创建一个自定义控制器并在加载程序之后设置场景。请注意,在
initialize()
调用时它尚未初始化。
public class MyController { private void Scene scene; public void setScene(Scene scene) { this.scene = scene; } } // loading pre FXMLLoader fxmlLoader = new FXMLLoader(); AnchorPane root = (AnchorPane) fxmlLoader.load(getClass().getResource("MyApp.fxml")); MyController myController = (MyController) fxmlLoader.getController(); myController.setScene(scene);- 您可以创建一个自定义fxml控件,该控件将包含控制器,而他可以getScene()自行调用。在此处查看示例:http://codingdict.com/questions/131411
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)