Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
注入根控件而不在JavaFX中命名?_Java_Javafx_Fxml - Fatal编程技术网

注入根控件而不在JavaFX中命名?

注入根控件而不在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

我可以使用根标记创建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 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 ;