【问题标题】:Exception in thread "JavaFX Application Thread" duplicate children added添加了线程“JavaFX 应用程序线程”重复子项中的异常
【发布时间】:2016-04-04 15:10:36
【问题描述】:

我在使用 JavaFx 的应用程序中工作,我想在我的 StackPane 中复制我的合成器,但我遇到了错误/异常。

final Button file = new Button("fichier");
file.setGraphic(new ImageView("/images/file.png"));
final Image fichier_img = new Image("/images/file.png");
final StackPane paint = new StackPane();

 ile.setOnAction(new EventHandler<ActionEvent>() {
   public void handle(ActionEvent e) {
        File fichier = new File();
        paint.getChildren().addAll( mes_images[0]);
       //fichier.setPositionX(me.getSceneX());
    }
});
 paint.addEventHandler(MouseEvent.MOUSE_CLICKED,
    new EventHandler<MouseEvent>() {
       public void handle(MouseEvent e) {
            if (e.getButton() == MouseButton.SECONDARY)  
                menu_gauche.show(paint, e.getScreenX(), e.getScreenY());
        }
});

这是我的错误信息:

线程“JavaFX 应用程序线程”中的异常 java.lang.IllegalArgumentException:孩子:重复的孩子 添加:父 = StackPane@658d001a 在 javafx.scene.Parent$2.onProposedChange(Unknown Source) at com.sun.javafx.collections.VetoableListDecorator.add(Unknown Source)

【问题讨论】:

    标签: java javafx javafx-2


    【解决方案1】:

    mes_images[0] 似乎已经添加到StackPane 中,这不应该发生。 创建一个新的Image 对象(我猜它是一个图像)并将这个新实例添加到StackPane 然后一切都会好起来的。

    来自javadoc of Node

    一个节点最多只能在场景图中的任何位置出现一次。 具体来说,一个节点必须在所有节点中出现不超过一次 如下:作为一个Scene的根节点,其children ObservableList 父级,或作为节点的剪辑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多