提问者:小点点

如何初始化自定义javafx控制器的成员变量?


在Spring框架中,我可以使用配置文件来加载类的成员变量。有没有一种方法可以在javafx中使用自定义控制器或自定义对象来实现这一点?


共1个答案

匿名用户

@FXML注解使名称定义为 (fx:id) 的 JavaFX 对象能够在从 fxml 标记加载场景图时,将其引用反射性地注入到控制器对象的非公共字段中。

您可以通过定义要在控制器对象的类中设置为类变量的值,然后在控制器对象的 initialize() 方法中以编程方式(而不是在标记中)设置适当的对象属性,来完成与请求非常相似的操作。

在场景图加载完成后(因此所有 GUI 对象都将被实例化)但在控件返回到应用程序的调用代码之前调用 initialize() 方法(如果存在)。

编辑

您只能在 fxml 文件中专门设置的控制器中使用@FXML,并且只能用于该类的字段。

这是必需的,因为这些字段会在创建该类对象的过程中自动初始化。

 public class MyController implements Initializable{

      @FXML
      Button startButton;

      void initialize(java.net.URL location, java.util.ResourceBundle resources) {
           startButton.addActionLisetner(...);
      }

 }

详细教程在这里

相关问题