javafx Intellij IDEA 索引用户控件

标签 java intellij-idea javafx

当我在 fxml 文件中使用 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 idea screen 如何在不使用 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#setControllerFactory,现在加载程序已成功加载我的自定义控件

关于javafx Intellij IDEA 索引用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61805245/

相关文章:

java - Oculus Rift,java失败的简单示例

java - 如何更改 LIST 的所有对象中特定属性的值

java - 查找从输入文件中获取的数字(不带数组)的模式

java - Hibernate 在保存时创建新行而不是更新

spring - 是否可以使用 Spring/Tomcat/Intellij 进行实时更改反馈?

java - Spring 批 : Cannot determine embedded database driver class for database type NONE

java - 如何为库中的 jar 配置 Intellij 代码覆盖率

javafx - 停止 ListView 所选项目的更改,直到按下按钮

java - 如何在 Controller 类中引用 Stage?

java - 使 BorderPane 看起来像一个圆圈