2016-08-08 5 views
1

JavaFXプロジェクトでは1台のマシンにイメージをロードできますが、同じコードで別のマシンにイメージをロードすることはできません。JavaFX - プロジェクト内からイメージをロードできません。

私はパッケージ構造(srcにあります) -/com/mypackagestructure/view/images /を持っています。これはイメージファイルを保持しています。

私がCSSファイルを持っている - /com/mypackagestructure/view/Login.css

Login.css 
.root { 
    -fx-background-image: url("/com/mypackagestructure/view/images/background.jpg"); 
    -fx-background-repeat: stretch; 
    -fx-background-size: 100%; 
    -fx-background-color: transparent; 
} 

私はこれとまったく同じ別のマシン(同じOS、同じのEclipse IDEのコードとJDK/JREを持っている(1.8 )がインストールされている)、それはその上で動作します。しかしこのマシンでは、私は次のメッセージを受け取ります:

Aug 08, 2016 3:36:39 PM com.sun.javafx.css.StyleManager getCachedImage 
WARNING: Error loading image: file:/com/mypackagestructure/view/images/background.jpg 

私は次の変更を加えると、それは動作します。

-fx-background-image: url("images/background.jpg"); 

私のイメージファイルの参照方法は何ですか?そして、なぜそれは1台のマシンで動作し、他のマシンでは動作しませんか?

答えて

1

私も同じような問題を経験しています。これらはビルドファイルのために時々発生し、あなたはそれをきれいにしてビルドしようとすることができます。

基本的に-fx-background-imageを定義している場合、url( "images/background.jpg");それはあなたのイメージのプロジェクトパッケージの場所を直接参照しています。あなたが以前の方法でそれを定義したい場合は

、あなたはすべての完全なディレクトリ例Cでそれを書き留めする必要があります:ユーザー\ \ニラム\ドキュメント\ NetBeansProjects Aplikasi Arsip Kesbangpol \ \ SRC \男優\ image.jpg

うまくいけばあなたの質問にお答えください。

私は(Cドライブ上の絶対パスを使用する場合

+0

はい、それは動作します。\ \ \ \ しかし、それはJARはどこでもすることができ、実行時のような問題を解決するためのdoesnt今のところ、唯一の相対的な。 – iMan

+0

絶対パスを使用したい場合は+1 – iMan

+0

を入力してください。あなたは二重バックスラッシュでディレクトリを変更しました。C:\\ Users \\ NILAM \\ Documents \\ NetBeansProjects \\ Aplikasi Arsip Kesbangpol \\ src \\ Gambar \\ image.jpg – user4073072

関連する問題