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

标签 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);

最佳答案

你的图像是一个ImageView,它是一个Node。任何节点都不能出现在两个场景中,或者在同一个场景图中出现两次。

要解决此问题,请使用当前图像中显示的相同图像创建一个新的 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);

关于java - 弹出窗口删除javafx中的主节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691243/

相关文章:

java - Java 堆中存在许多 java.time.ZoneRegion 实例。难道 ZoneId 实例不应该被缓存吗?

java - 对同一个 fxml 文件使用两个 Controller 类

鼠标悬停时JavaFx旋转按钮

user-interface - 如何将 ControlsFX(对话框)与 FXML 文件一起使用?

java - 无法看到图像(Imageloader.java)

java - Selenium CSS 选择器语法用于检查类和文本

data-binding - 如何在 JavaFX 2 中的 FXML 中进行绑定(bind)?

java - 在动画的 onFinished EventHandler 中使用 showAndWait 不起作用

java - 由于 sql 错误 java.sql.SQLException : Invalid value for getInt()?,无法从我的表中获取数据

javafx - 在哪里可以找到皮肤类的 JavaFX 8 源代码?