[英]javafx Intellij IDEA index user control
当我在 fxml 文件中使用fx:controller
时一切正常,但我不能使用fx:controller
如果它是用户控制( fx:root
顶部标签)。 因此,Intellij 停止索引文件,并且在 controller 文件中我收到警告,因为未分配变量。
<fx:root prefHeight="500.0" prefWidth="710.0" type="VBox" xmlns="http://javafx.com/javafx/8.0.171"
xmlns:fx="http://javafx.com/fxml/1">
<FlowPane fx:id="flow" columnHalignment="CENTER" hgap="25.0" vgap="25.0"/>
</fx:root>
如何在不使用fx:controller
的情况下指定 controller 文件进行索引?
我找到了解决方案,首先我仍然放了fx:controller
属性,但是
public CustomControl() {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("CustomControl.fxml"));
loader.setRoot(this);
loader.setController(this);
loader.load();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
我用
public CustomControl() {
try {
FXMLLoader loader = new FXMLLoader(getClass().getResource("CustomControl.fxml"));
loader.setRoot(this);
loader.setControllerFactory(theClass -> this);
loader.load();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
我只是用FXMLLoader#setController
替换 FXMLLoader# FXMLLoader#setControllerFactory
,现在加载器成功加载我的自定义控件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.