我想使用弹出窗口在 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/