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