java - JavaFX 中 StackPane 上的 BufferedImage

标签 java image swing javafx

我有一个 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/

相关文章:

java - 如何在不使用eclipse的情况下运行war文件

java - 如何解决 Java awt/swing 图像打印中的滞后问题?

java - Swing线程通信

java - 如何使用外部类中的类的 Graphics 对象

Java Swing HiDPI 缩放

java - 为什么 Java 在配置 JMX 时会打开 3 个端口?

java - File.createTempFile 检查文件是否存在?

Python Django 如何旋转图像并去除黑色?

java - 为什么在循环中分配数组中的引用后会出现 NullPointerExceptions?

python-3.x - 如何使用cv2使用python3提高图像回放的速度