为锚窗格设置类控制器
Posted
技术标签:
【中文标题】为锚窗格设置类控制器【英文标题】:Setting a class Controller for Anchor Pane 【发布时间】:2012-12-30 20:26:39 【问题描述】:在使用 JavaFX Scene Builder 时遇到以下问题...
鉴于:
一个 fxml 文件,包含描述 Anchor Pane(由 Scene Builder 形成的 fxml); 对于 Anchor Pane,未指定 Controller 类。 使用 FXMLLoader 将此 fxml 加载到 Java 应用程序中。
需要:
下载锚窗格后,将值设置为控制器类。 需要使用不同的处理程序加载相同的 fxml。
问题:是否有可能,如果有 - 如何实施?
【问题讨论】:
【参考方案1】:加载FXML文件的控制器类也可以通过Scene Builder来设置。但是您想在应用程序的加载时设置它。为此,您应该在调用 load() 方法之前设置 FXMLLoader 的控制器:
AnchorPane rootPane;
MyController controller = new MyController();
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("my.fxml"));
fxmlLoader.setRoot(rootPane);
fxmlLoader.setController(controller);
fxmlLoader.load();
【讨论】:
Uluk Biy,嗨,我尝试了你的答案并为我工作。我有一个问题,如何使用设计器设置控制器类?我不知道在“控制器类”字段中放什么,我只尝试了控制器类的名称、包/名称、应用程序名称/包/名称......如果你知道或能给我一个例子.. . 谢谢你 @HoNgOuRu 很遗憾我没有使用场景构建器。 嗨,感谢您的回答。问题是场景构建器在保存之前从 fxml 中删除了包的导入语句。以上是关于为锚窗格设置类控制器的主要内容,如果未能解决你的问题,请参考以下文章
哪些命令在 Mac 的“仪器”应用程序的“控制台窗格”中有效? (例如,在仪器中)