繁体   English   中英

javafx Intellij IDEA索引用户控件

[英]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>

Intellij 创意屏幕 如何在不使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM