【发布时间】:2017-03-07 10:23:23
【问题描述】:
在控制器和 FXML 文件之间手动输入 fx:id 以及后期绑定是潜在的错误来源,会削弱代码的稳健性(我个人的看法)。
另一方面,它提供了灵活性。
有没有办法在运行时显示错误之前验证绑定和识别错误,或者这是“设计”的工作流程,您必须在编码时小心行事并小心?
编辑:
我正在使用带有 e(fx)clipse 和 Gluon Scene Builder 的 Eclipse
【问题讨论】:
-
如果您在根元素上设置
fx:controller属性,某些IDE(例如IntelliJ)将使用它来交叉检查fx:id值到@FXML注释字段。跨度> -
@sillyfly 这也适用于最新版本的 Eclipse。您也可以在控制器的
initialize方法中使用assert btnLogin != null : "fx:id=\"btnLogin\" was not injected: check your FXML file 'LoginView.fxml'.";。 -
@sillyfly 我在 Eclipse 上尝试过,当我引用控制器中不存在于 FXML 中的控件时,我没有通过智能感知发出警告(引用该控制器)
-
你会用什么样的逻辑来验证fxml???除了将值注入控制器之外,
fx:id还有其他用途,用户可能会不小心用@FXML注释字段,尽管它是从控制器类本身写入的。两者都不会导致错误,但是它们的验证可能会失败......