2

私はJavaでゲームを作成することを学んでおり、アニメーション化する前にいくつかの画像をロードする必要があります。これは私が今していることです:

bg = new ImageIcon(System.getProperty("user.dir")+"/src/img/bg.jpg").getImage();

しかし、明らかにそれは多くの欠点を持っています。そもそも、長くて醜い見た目で、遅いのではないかと思います。さらに、スラッシュ「/」はMacまたはLinuxでのみ機能しますが、Windowsの場合と同様に、バックスラッシュを使用します。

編集:以下のSamuel Rossilleによって修正されたように、スラッシュ「/」は実際にはWindowsで機能します。

とにかく、アプリケーションディレクトリにあり、クロスプラットフォームであるだけでなく、よりエレガントな方法で変更されない画像をロードする方法があるのだろうかと思いました。

テキストファイルの読み込みはどうですか?それらは何か違いがありますか?

4

1 に答える 1

3

情報を参照してください。埋め込まれたリソース。aを受け入れるほとんどのメソッドとコンストラクターはFileInputStreamまたはを受け入れることに注意してくださいURL。埋め込まれたリソースは読み取り専用です。


ファイルの問題について(まれに、ファイルを使用していて、からパスを作成する必要がある場合がありますString)。

String fileSep = System.petProperty("file.separator");
bg = new ImageIcon(System.getProperty("user.dir")+
    fileSep+
    "src"+
    fileSep+
    "img"+
    fileSep+
    "bg.jpg").getImage();

これは、ファイルシステムに正しい区切り文字を使用するディレクトリパスを取得する1つの方法です。このクラスは、正しいセパレーターを挿入する Fileような便利なコンストラクターも提供します。new File(parent,child)

余談ですがString、パスを表すことを目的としたJ2SEのすべてのメソッドとコンストラクターはFile非推奨にすべきだと強く感じています。が必要な場合はFile、それを与えて、Fileそれで済ませてください。

于 2012-06-01T06:17:14.147 に答える