JavaFX中StackPane上的BufferedImage

时间:2015-10-13 22:18:04

标签: java image swing javafx

我有一个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是一个堆栈窗格,但它不起作用。

提前致谢,我为问题的简单性道歉。

1 个答案:

答案 0 :(得分:2)

BufferedImage转换为Javafx Image后,您必须向StackPane添加NodeImage不是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);
}