更新
SceneBuilder 2.0 的最终版本放弃了在 SceneBuilder 2.0 预览中可用(但有些损坏)并在此答案中讨论的三次曲线操作功能。
此设施的相关问题跟踪器请求是:
我找不到任何关于如何添加/删除节点、创建额外句柄的文档
我认为您实际上想要做的是创建一个路径,该路径在路径上的点之间具有多条三次曲线。为此,您需要将CubicCurveTo路径元素添加到路径中。您可以手动创建这样的 fxml,SceneBuilder 会显示它,但 SceneBuilder 1.1 没有可视化创建路径的能力。我刚刚尝试了 SceneBuilder 2.0 早期版本,它确实允许您在视觉上创建路径,但它似乎工作得不太正确,所以我认为特定功能仍在进行中。
这个答案的其余部分与 SceneBuilder 1.1 中的普通 CubicCurves 相关(而不是 CubicCurveTos)。
是否可以在 Scene Builder 中直观地操纵 CubicCurves?我可以拖动节点和手柄。
这就是您编辑曲线的方式。您单击小方形手柄并拖动它们以修改曲线起点/终点和控制点。您单击曲线本身并拖动它以移动整个曲线。检查器面板的布局部分还有 StartX、StartY、ControlX1、ControlY1 等文本字段,您可以在其中手动编辑数据。
如果要添加更多控制点,请添加一条新曲线(通过将其从形状库拖动到场景中),然后(这里是令人讨厌的位)手动对齐曲线端点和控制点以平滑连接两条曲线终点。
这是一个示例,其中突出显示了两条不同曲线的控制点。
使用 SceneBuilder 的建议
SceneBuilder 并不是真正的绘图工具,它更像是一个组件组装和布局工具。它是一个旨在与其他工具一起使用的工具,而不是一个综合性的设计和开发工具。它不会试图成为一个编写代码的 IDE,因为有很多好的 Java IDE 可以用来编写代码。它也没有试图成为矢量绘图工具,因为有很多好的工具可以做到这一点。
如果您有很多绘图要做,IMO,您最好使用Inkscape等专用工具来创建原始矢量图形数据,然后使用另一个工具将其转换为 FXML(您可以将其直接加载到 SceneBuilder 或JavaFX 应用程序)。
JavaFX 1.x 曾经提供了一个工具,您可以在其中直接从 Inkscape 导出 SVG 数据,它会输出基于 JavaFX 1.x FXD 的场景定义。但不幸的是,JavaFX 2.x 还没有这样的工具。
JavaFX 的类似绘图转换工具是FXG 到 FXML 转换器,它采用 Adobe Illustrator 文件并生成可在 SceneBuilder 中使用的 FXML 文件。
如果您的输入数据是 3D 模型,那么 InteractiveMesh 将3D 模型提供给 FXML 转换器,您可以使用这些转换器将模型导入 FXML(然后可以在 SceneBuilder 2.0 中使用)。
是否有 Scene Builder 的文档?
如果您发现有关 SceneBuilder 文档的更多反馈,请发送电子邮件至 JavaFX 文档团队:
jfx-docs-feedback_ww@oracle.com