【问题标题】: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。

问题:是否有可能,如果有 - 如何实施?

【问题讨论】:

    标签: java javafx-2 javafx scenebuilder


    【解决方案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 中删除了包的导入语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2014-09-13
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 2012-05-18
    相关资源
    最近更新 更多