注入根控件而不在JavaFX中命名?
我可以使用根标记创建FXML文件:注入根控件而不在JavaFX中命名?,java,javafx,fxml,Java,Javafx,Fxml,我可以使用根标记创建FXML文件: <BorderPane fx:id="mypane" fx:controller="my.package.MyController" xmlns="http://javafx.com/javafx/8.0.91" xmlns:fx="http://javafx.com/fxml/1" /> 但是我可以在不指定fx:id的情况下执行相同的操作吗?控件是最上面的,那么需要命名它吗?我可以把它称为“root”吗?据我所知,根节点没有“default
<BorderPane fx:id="mypane" fx:controller="my.package.MyController"
xmlns="http://javafx.com/javafx/8.0.91" xmlns:fx="http://javafx.com/fxml/1" />
但是我可以在不指定
fx:id
的情况下执行相同的操作吗?控件是最上面的,那么需要命名它吗?我可以把它称为“root”吗?据我所知,根节点没有“default fx:id”。据我所知,在没有显式fx:id的情况下可以注入的元素只有那些在FXML文件中没有实际定义的元素:
@FXML
private URL location ;
@FXML
private ResourceBundle resources ;
请注意,
FXMLLoader
也包含控制器的值(使用键“controller”
),但它不会被注入控制器中(在该上下文中,它与此
完全相同…简短的答案是肯定的,但长的答案是为什么要这样做?你只是想让自己不用用fx:id来命名父元素吗?@IanGabes好的,我现在很好奇:怎么命名?取决于你的版本,但这是事实上的答案:@IanGabes这有点不同,不是吗?在那里,您必须(以某种方式)在Java中实例化根节点,并将其设置在fxmloader
上。在发布的问题中,根节点由FXML标记确定。(然而,“你为什么要这样做”是一个非常有道理的问题。)我想我们需要等待OP的澄清。但是,在加载FXML之前,使用
必须具有对根节点的引用(即使该引用是this
),这似乎比添加fx:id
属性更为必要,而不是更少。。。
@FXML
private URL location ;
@FXML
private ResourceBundle resources ;