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都一样