使用javafx将子窗口面板导入到画布场景中

时间:2012-12-11 16:18:52

标签: java scala javafx-2 javafx java-canvas

与其他工程师一起,我们创建了一个软件(www.openmole.org),以便在计算机网格上创建和运行复杂的工作流程。使用gui,您可以创建和修改一些复杂的拖放工作流程:

enter image description here

您还可以在此处观看视频:http://www.openmole.org/files/crazyCoconut.webm

正如您所看到的,可以将每个任务相互拖放和连接,以形成复杂的工作流程。当任务移动时,箭头移动以跟随鼠标移动。单击任务时,将打开一个新面板,以便您可以选择一些选项来配置每个任务。

实际上我们使用Netbean库在一个独特的场景中绘制所有这些,但是将来我们想用javafx api / object做同样的事情。

那么,您认为是否可以使用Nodes场景和api打开新的Javafx Canvas子窗口,就像在这个简单的用例中代表我们的用例一样?

如果没有,您是否知道其他一些库可以实现这一目标?

enter image description here

1 个答案:

答案 0 :(得分:2)

您不能将节点放在Canvas中,因为它不是Parent,因此它是一片Node,并且没有子节点。

您可以将Canvas放置在Group中,然后将其他节点添加到该组以覆盖Canvas。或者您可以获取节点的snapshot个图像并将快照放在画布中。虽然在标准场景图而不是画布中渲染UI可能会更好。


以下是使用标准场景图构建的类似但不同的UI的一些简单示例:Drag and drop connected nodesDynamically add draggable and resizable children

yWorks创建了他们出色的图表工具的JavaFX原型,因此请考虑联系他们并获得许可,而不是建立自己的。

另请参阅帮助数据可视化UI构建的Dex JavaFX Visualization Framework