2017-09-30 4 views
0

私は作成中のゲームに実装する画像がいっぱいのassetsフォルダを持っており、これらをウィンドウに表示したい。これはこれまでの私のコードです。JavaFX ImageView画像が表示されない

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(); 
    } 
} 

これは、IntelliJ /内でjarファイルから実行するためのプログラムです。 assetsフォルダは、このファイルと同じディレクトリにあります。私はファイルパスのエラーを取得するので、イメージを見つけることができると仮定しますが、画面に表示されず、四角形が表示されます。

公正な警告、私はゼロからJavaFXを学んでいますが、私は物事の仕組みについてはあまり説明がないことを知っています。だから、これは愚かな質問かもしれません。

+0

場合はgetResource' '経由でアクセスする必要があります:'新しい画像(のgetClass()のgetResource( "/資産/ BA.png")toExternalForm()。。 ) ' – fabian

+0

ちょうどintellijにする必要がありますので、上記の結果はnullポインタの例外になります – 420fedoras

+1

あなたのプロジェクトにイメージを追加し、 'getRessource()'を使うか、イメージのフルパスを書く必要があります。 –

答えて

1

イメージが実際にアセットになっている(つまり、プログラムを構成する.classファイルに沿って配布されている)場合、ファイルシステム経由でイメージにアクセスすることは間違っています。インストールパス(別名ホームパス)。これは、ファイルツリーは、あなたの中のようになります方法です

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

src/main/resources/assets/BA.png 

としてそれにアクセス:正しい選択をので、あなたのイメージは、次のパスに置いて、あなたのJARであなたのイメージをバンドルされますコンピュータ:画像はjarファイルに追加され

enter image description here

関連する問題