弹出窗口删除javafx中的主节点

时间:2014-03-27 14:50:37

标签: java javafx javafx-2 javafx-8 scenebuilder

我想使用弹出窗口在javafx中创建照片库。 但是当我将目标图像传递给方法以将弹出窗口的内容设置为该图像时,主图像将被删除,弹出窗口将打开。为什么?请帮助我。谢谢。  (请原谅我的英语不好!!!)

这就是代码段。

        final Popup popup = new Popup();
        popup.getContent().add(image);
        popup.setOnShown(new EventHandler<WindowEvent>(){
         @Override
         public void handle(WindowEvent t) {
             image.setFitHeight(400);
             image.setFitWidth(400);

         }
    });

       popup.show(stage);

1 个答案:

答案 0 :(得分:3)

您的图片是ImageView,它是一个节点。没有节点可以出现在两个场景中,或者在同一场景图中出现两次。

要解决此问题,请使用当前图像中显示的相同图像创建新的ImageView(图像可以重复使用,即使ImageView可能不会重复使用)。

    final Popup popup = new Popup();
    final ImageView popupImage = new ImageView(image.getImage());
    popup.getContent().add(popupImage);
    popup.setOnShown(new EventHandler<WindowEvent>(){
     @Override
     public void handle(WindowEvent t) {
         popupImage.setFitHeight(400);
         popupImage.setFitWidth(400);

     }
});

   popup.show(stage);