我很想知道为什么您想要使用 2013 年推出的 Scene Builder 1.1。我猜是因为您必须使用 JDK 7 维护一些遗留的 JavaFX 代码?
我猜您也知道可以找到场景生成器的当前版本here https://gluonhq.com/products/scene-builder/#download,并且支持 JDK 8 和 JDK 10。
不管怎样,回到你的问题,坏消息是 Scene Builder 1.1 没有用于管理 jar/fxml 文件的菜单。您可以在此处找到更多相关信息issue https://bugs.openjdk.java.net/browse/JDK-8102877:
此功能现已在 SB 2.0 预览版中提供
好消息是它对第三方组件有某种基本支持。您可以通过两种方式启用第三方组件:
我必须在当时的旧文件之间进行搜索,以找到一些有效的用例来测试这一点。我们可以使用一个JFXtras http://jfxtras.org版本 2.2 的 jar ('org.jfxtras:jfxtras-labs:2.2-r5') 可以从以下位置下载here https://mvnrepository.com/artifact/org.jfxtras/jfxtras-labs/2.2-r5.
您可以使用其控件之一创建 fxml:
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import jfxtras.labs.scene.control.*?>
<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2">
<children>
<BigDecimalField layoutX="160.0" layoutY="132.0" />
</children>
</AnchorPane>
现在,如果您尝试使用 SB 1.1 打开此 fxml,您将看到以下对话框:
您可以在此处指定您的 jar:
你必须点击Apply
然后你就可以打开你的fxml:
现在,如果您检查 fxml 文件,您会注意到将包含类路径:
<?import jfxtras.labs.scene.control.*?>
<?scenebuilder-classpath-element C:/tmp/jfxtras-labs-2.2-r5.jar?>
这仅适用于该文件。请注意,scenebuilder-classpath-element
标签是removed https://bugs.openjdk.java.net/browse/JDK-8094986与 SB 2.0。
如果您想要更永久的解决方案,可以将 jar 直接添加到app
文件夹(可能你会在下面找到它C:\Program Files (x86)\Oracle\JavaFX Scene Builder 1.1\app
).
你必须编辑package.cfg
文件添加以下内容:
app.classpath=scenebuilder.jar;jfxtras-labs-2.2-r5.jar
保存并启动 SB 1.1。现在您将能够直接打开 fxml 文件或任何其他需要第三方 jar 的文件。