Scene Builder 无法打开带有注释的 FXML 文件

Posted

技术标签:

【中文标题】Scene Builder 无法打开带有注释的 FXML 文件【英文标题】:Scene Builder does not open FXML file with comments 【发布时间】:2020-09-14 07:45:55 【问题描述】:

我从安装良好的 JavaFX Scene Builder 11.0.0 开始,IDE 集成运行良好。然后 Scene Builder 无法打开 FXML 文件。经过反复试验,我发现 Scene Builder 不喜欢标签末尾的 <!-- comment -->,于是我制作了一个如下所示的测试用例。

现在,当我尝试提交测试用例时,Scene Builder 停止工作,有时需要 10 分钟才能启动。我不知道在哪里为 Scene Builder 配置日志记录,并且日志文件始终为空。

这是测试用例:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.VBox?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity"
            minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0"
            prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.65" xmlns:fx="http://javafx.com/fxml/1"
            style="-fx-background:#A2A3A5;">
    <center>
    </center>
    <top>
    </top>
    <right>
        <VBox alignment="TOP_CENTER" prefHeight="329.0" prefWidth="165.0"
              spacing="10.0" BorderPane.alignment="TOP_CENTER">
            <children>
                <ScrollPane prefHeight="209.0"
                            prefWidth="459.0"
                            style="-fx-background: white; -fx-border-color: green; -fx-border-width: 2;"
                            AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
                            AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"><!-- This comment breaks the file for Scene Builder -->
                    <content>
                        <GridPane hgap="2" prefHeight="100"
                                  prefWidth="100" vgap="2">
                        </GridPane>
                    </content>
                </ScrollPane>
            </children>
        </VBox>
    </right>
</BorderPane>

我的问题是:

    如何在此版本中配置日志记录以便我看到错误? 支持多少手动编辑 - 是否允许 cmets? 什么是启动延迟?

【问题讨论】:

【参考方案1】:

这是 Scene-Builder 的一个已知问题,当注释与 FXML 标记位于同一行时会发生此问题。如果你只是在两者之间添加一个新行,它应该可以工作。如果你去帮助->关于 JavaFX Scene Builder,你会看到默认的日志信息:linux系统上的默认是文件路径/tmp/scenebuilder-[your version of scene builder].log在同一个文件夹中你会发现DTL-[number].fxml 文件。该文件将包含 Scene Builder 解释的 FXML 源代码:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.ScrollPane?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.BorderPane?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.VBox?>

<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background:#A2A3A5;" xmlns="http://javafx.com/javafx/8.0.171" xmlns:fx="http://javafx.com/fxml/1">
    <center>
    </center>
    <top>
    </top>
    <right>
        <VBox alignment="TOP_CENTER" prefHeight="329.0" prefWidth="165.0" spacing="10.0" BorderPane.alignment="TOP_CENTER">
            <children>
                <ScrollPane prefHeight="209.0" prefWidth="459.0" style="-fx-background: white; -fx-border-color: green; -fx-border-width: 2;" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"<!-- This comment breaks the file for Scene Builder -->>
                    <content>
                        <GridPane hgap="2" prefHeight="100" prefWidth="100" vgap="2">
                        </GridPane>
                    </content>
                </ScrollPane>
            </children>
        </VBox>
    </right>
</BorderPane>

【讨论】:

以上是关于Scene Builder 无法打开带有注释的 FXML 文件的主要内容,如果未能解决你的问题,请参考以下文章

为啥JavaFX Scene Builder打开失败,版本1.1和2.0都一样

flash builder无法打开文件

JavaFX之Scene Builder详细使用说明

JavaFX Scene Builder 使用基础

Netbeans 中 Scene Builder 的配置错误

JavaFX Scene Builder 怎么用???