javafx图形上下文不会渲染图像

javafx图形上下文不会渲染图像,javafx,Javafx,我的文件rhino.gif与此程序位于同一目录中。 它编译得很好,但图像不会渲染到屏幕上。 请注意,图像知道其尺寸(300X300) 我错过了什么 import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.control.Button; import javafx.scene.layout.HBox; import javafx.scene.Scene; import javafx.

我的文件rhino.gif与此程序位于同一目录中。
它编译得很好,但图像不会渲染到屏幕上。 请注意,图像知道其尺寸(300X300)

我错过了什么

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.scene.Scene;
import javafx.application.Platform;
import javafx.scene.layout.BorderPane;
import javafx.scene.canvas.Canvas;
import javafx.scene.canvas.GraphicsContext;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ImageShower extends Application
{
    @Override
    public void init()
    {
        //runs before GUI starts
    }
    @Override
    public void start(Stage primary)
    {
        BorderPane root = new BorderPane();
        Canvas c = new Canvas(500,500);
        GraphicsContext pen =  c.getGraphicsContext2D();
        Image im = null;
        ImageView iv = new ImageView();
            //im = new Image(new FileInputStream(new File("rhino.gif")));
            im = new Image("file:/Users/morrison/teaching/java/rhino.gif");
            System.out.println(im);
            pen.drawImage(im, 100, 100, 300, 300);
            System.out.println(im.getWidth());
            System.out.println(im.getHeight());
        primary.setScene(new Scene(root));
        primary.show();
    }
    @Override
    public void stop()
    {
        //run after GUI ends.
        //prevent data loss.
        //clean up any messes.
        System.out.println("Gahhhhh ! My last gasp prior to death!");
    }
    public static void main(String[] args)
    {
        launch(args);
    }
}

我无法重现这个问题,即使是使用动画GIF文件(尽管它只绘制第一帧)。你试过其他GIF文件吗?也许是关于
rhino.gif
的某些东西导致了这个问题。下载并查看它是否显示。我对你的结果很感兴趣。我的图像显示在
画布上。您使用的是什么版本的JavaFX?我正在使用JavaFX13.0.2。也许有一个bug在新版本中被修复了(有意或无意)。如果这有什么关系的话,我也在Windows 10上。我无法重现这个问题,即使是使用动画GIF文件(尽管它只绘制第一帧)。你试过其他GIF文件吗?也许是关于
rhino.gif
的某些东西导致了这个问题。下载并查看它是否显示。我对你的结果很感兴趣。我的图像显示在
画布上。您使用的是什么版本的JavaFX?我正在使用JavaFX13.0.2。也许有一个bug在新版本中被修复了(有意或无意)。如果这有什么关系的话,我也使用Windows10。