JavaFX ImageView图像未显示

时间:2017-09-30 08:05:09

标签: java image javafx imageview

我有一个assets个文件夹,里面装满了我要在游戏中创建的图像,我想在窗口中显示这些图像。到目前为止,这是我的代码。

public class javafxtest extends Application {
    public void start(Stage primaryStage) throws Exception {
        Group root = new Group();
        Scene scene = new Scene(root, 600, 600);

        Image test = new Image("file:assets/BA.png");
        ImageView piece = new ImageView(test);
        piece.setX(10);
        piece.setY(10);

        Rectangle rct = new Rectangle(50, 150, 500, 300);
        rct.setFill(Color.GRAY);

        root.getChildren().addAll(rct, piece);
        primaryStage.setScene(scene);
        primaryStage.show();
    }
}

这将是一个程序在jarJ的IntelliJ /中运行。 assets文件夹与此文件位于同一目录中。我没有文件路径错误,所以我认为它可以找到图像,但它不会出现在屏幕上,矩形也会出现。

公平警告,我从零开始学习JavaFX,而且我发现对于工作方式的解释并不多,所以这可能是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

当图像实际上是一种资产(即它与构成程序的.class文件一起分发)时,通过文件系统访问图像是错误的选择,因为这样你必须处理安装路径(也称为主路径)。正确的选择是将图像捆绑在JAR中,因此请将图像放在以下路径中:

src/main/resources/assets/BA.png

并通过以下方式访问它:

Image test = new Image("/assets/BA.png");

这是文件树在您的计算机中的样子:

enter image description here