栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JavaFX中的场景图中克隆节点?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JavaFX中的场景图中克隆节点?

发生此错误是因为您试图将a的 相同
实例添加

Node
到另一个中
Node
。如果您从下面的示例中删除评论,您也会收到该错误。另一方面,循环会正常工作,因为在每次迭代中
Button
都会创建一个新实例。

@Overridepublic void start(Stage stage) {    FlowPane root = new FlowPane();    // Results in error    // Button b1 = new Button("Button");    // root.getChildren().addAll(b1,b1);    for (int i = 0; i < 4; i++) {        Button b = new Button("Button");        root.getChildren().add(b);    }    Scene scene = new Scene(root, 50, 100);    stage.setScene(scene);    stage.show();}

您的窗格可能更复杂,但是您必须使用相同的原理。将负责创建窗格的代码放在单独的方法

getPane()
或类似方法中,并循环使用它来获取新实例。

JavaFX并没有为您提供现成的解决方案来制作的深层副本

Node
。如果您
Node
是静态创建的,则可以:

  1. 将负责创建它的代码放在单独的方法中,并在每次需要获取窗格的新实例时在整个应用程序中使用它。
  2. 在FXML文件中定义它,并在每次需要新实例时加载它。

如果您

Node
拥有由用户动态创建或修改的属性或子代,则情况会变得更加糟糕。在这种情况下,您必须检查其元素并自行重新创建它们。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440623.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号