我有一个 BufferedImage,我想在堆栈 Pane 中显示,因为我正在 JavaFX 应用程序中工作。几天前我也遇到过同样的情况,但我正在 Java 中工作,在这种情况下我是这样做的:
public static void VisImmagineDaPc(JFrame frame, BufferedImage image) throws Throwable
{
if (label==null){
label = new JLabel(new ImageIcon(image));
frame.getContentPane().add(label, BorderLayout.AFTER_LAST_LINE);
// frame.setSize(10, 10);
int larghezza = frame.getWidth();
int altezza = frame.getHeight();
// frame.setSize(larghezza, altezza);
frame.setSize(larghezza, altezza );
frame.setResizable(false);
frame.setVisible(true);
}
...
该方法继续执行其他代码,但目前并不重要。因此,在 Java 中,我使用图像创建一个 Jlabel,然后添加到 Jframe。为了在堆栈 Pane 中显示图片,我需要在 JavaFX 中做什么?我尝试了 content.getChildren().addAll(image);
其中 content
是一个堆栈 Pane ,但它不起作用。
提前致谢,对于问题的简单性,我深表歉意。
最佳答案
将 BufferedImage
转换为 Javafx Image
后,您必须向 StackPane 和 Image
添加一个 Node
> 不是 Node
,因此您可以使用 Image
构造 ImageView
。
@FXML StackPane s;
@FXML void initialize(){
BufferedImage b = ImageIO.read(file);
Image i = SwingFXUtils.toFXImage(b, null);
ImageView v = new ImageView(i);
s.getChildren().add(v);
}
关于java - JavaFX 中 StackPane 上的 BufferedImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33113572/