在Spring框架中,我可以使用配置文件来加载一个类的成员变量。有没有办法在 javafx 中使用自定义 Controller 或自定义对象执行此操作?
最佳答案
当场景图从 fxml 标记加载时,@FXML 注释使您定义其名称 (fx:id)
的 JavaFX 对象能够将它们的引用反射注入(inject)到 Controller 对象的非公共(public)字段中.
通过在 Controller 对象的类中定义要设置为类变量的值,然后在 initialize() 中以编程方式(而不是在标记中)设置适当的对象属性,您可以完成与您请求的非常相似的事情 Controller 对象的方法。
在场景图加载完成后(因此所有 GUI 对象都已实例化)但在控制权返回到应用程序的调用代码之前调用(如果存在)initialize() 方法。
编辑
您只能在 Controller 中使用 @FXML,它是在 fxml 文件中专门设置的,并且只能用于该类的字段。
这是必需的,因为这些字段将在创建该类的对象期间自动初始化。
public class MyController implements Initializable{
@FXML
Button startButton;
void initialize(java.net.URL location, java.util.ResourceBundle resources) {
startButton.addActionLisetner(...);
}
}
详细教程在here
关于java - 如何初始化自定义 javafx Controller 的成员变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20321321/