我有一个BufferedImage,我想在堆栈窗格中显示,因为我在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。为了在堆栈窗格中显示图片,我在JavaFX中需要做些什么?我尝试content.getChildren().addAll(image);
content
是一个堆栈窗格,但它不起作用。
提前致谢,我为问题的简单性道歉。
答案 0 :(得分:2)
将BufferedImage
转换为Javafx Image
后,您必须向StackPane添加Node
,Image
不是Node
,这样您就可以使用ImageView
构建Image
。
@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);
}