JavaFx场景构建器和Maven集成

时间:2015-04-04 13:12:35

标签: javafx-8 scenebuilder

我在eclipse中创建了一个JavaFx8 Maven项目。我把我的fxml文件放在/ src / main / resources / fxml /中。我可以使用FxmlLoader从java文件加载fxml。但是,我无法使用Scenebuilder从Fxml文件中选择控制器类。

如何在Scenebuilder工具中自动查看控制器类?

我发现了一个类似的问题,但答案并不清楚。我无法登录jira案例。

Tell JavaFX Scene Builder where to look for controller classes

4 个答案:

答案 0 :(得分:3)

我最初将fxml文件放在同一个文件夹/ src / main / java中。然后,我使用scenebuilder映射了所有元素/控制器。

映射完成后,我将fxml移动到/ src / main / resources文件夹。这很有效。

答案 1 :(得分:1)

同样的自动化解决方案:找到与标准java-fx项目相同的控制器和fxml文件。我的意思是将你的fxml和控制器文件放在与非maven项目相同的地方。然后将以下maven配置添加到项目中。

    <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <executions>
                <execution>
                    <id>copy-fxml-resources</id>
                    <!-- here the phase you need -->
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${basedir}/target/classes/</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/java/</directory>
                                <filtering>false</filtering>
                                <includes>
                                    <include>**/*.fxml</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

答案 2 :(得分:0)

您必须将FXML放在其控制器旁边的同一个包中 并且Scene Builder将看到Controller

答案 3 :(得分:0)

我知道这是一个老问题,但我已经在Gridbuilder的Gluon版本上提出了拉取请求,修改了控制器搜索路径here。还有一个相应的问题here

如果拉取请求得到投票,它可能会更快合并。如果有人也可以在Mac和Windows平台上构建和测试它,那将是很有帮助的。