在 JavaFX 中动态添加组件

Add components dynamically in JavaFX

已更新:由于对该主题的了解不足,问题不正确。对不起。

我正在尝试创建一个小型应用程序来显示包含 nodesconnections 的图表。节点和连接都很复杂,我的意思是它们可以包含其他组件,例如标签。

我有一个大 Pane,它扮演着 canvas 的角色。我要从中添加和删除元素。问题是我想使用按钮或上下文菜单动态地 addremove 图形元素。有点像 Paint for Graphs :) 而且我不知道如何实现它。 特别是我在 dynamical adding/removing mechanism 迫切需要帮助。非常感谢您的帮助!

只需获取要向其添加内容的窗格的子列表,并在适当的操作发生时添加内容。

FlowPane pane = new FlowPane();
Button addNode = new Button("Add");
addNode.setOnAction(e -> pane.getChildren().add(new Circle(10));

备注:

  • 如果您想在添加到窗格时适当地使用 Pane rather than a FlowPane, then Pane has no internal layout, so you need to also set the layoutX and layoutY 属性。

  • 如果你想改变Pane中节点的渲染顺序(例如哪些节点渲染在底部,哪些节点在顶部),那么你可以通过在适当的位置添加新节点来实现在子列表中;例如,pane.getChildren().add(0, new Circle(10)) 将添加一个圆圈,该圆圈呈现在窗格的所有其他子项下方而不是顶部。