3

プロジェクトを作成しました。プロジェクト内に、私のパッケージを含む Source Packages という名前のフォルダーがあります。画像が必要で、.jar を作成するときに画像フォルダーが jar ファイル内になるように、それらをプロジェクト内 (またはソース パッケージ内) のフォルダーにコピーしたいと考えています。NetBeans でそれを行うにはどうすればよいですか?

編集:私はまだそれを理解できません、これはコードです:

 Image star; 
 InputStream stream = getClass().getResourceAsStream("images/star.png");
 star= ImageIO.read(stream);

「IllegalArgumentException input==null」というエラーが表示されます。

このコードを試してみると、フォルダー「images」はプロジェクト「Game」のフォルダー内にあります。

Image star; 
InputStream stream = getClass().getResourceAsStream("images/star.png");
star= Toolkit.getDefaultToolkit().getImage("images/star.png");

それは動作します、私は InputStream で何が間違っていますか?

4

2 に答える 2

2

画像をパッケージまたはパッケージが表すフォルダーにコピーして貼り付けるだけです。画像にアクセスしたい場合:

InputStream stream = getClass().getResourceAsStream("/com/my/pkg/my_image.png");

その他の例については、この SO の質問を参照してください。

特定のパッケージからラベル、フレームなどに画像を追加する方法

編集: ClassLoader.getResourceAsStream(String) は、パスに指定したパッケージにあるリソースを検索します。たとえば、 に存在com.my.pkg.aするクラスから に存在する画像を取得する場合com.my.pkg.b:

// From com.my.pkg.b.MyClass
InputStream stream = getClass().getResourceAsStream("/com/my/pkg/a/my_image.png");

指定されたパスは package に移動することに注意してくださいa。これにより、別のパッケージにある場合でもイメージが見つかります。詳細については、内部で使用されるClassLoader.getResource()の javadoc を参照してください。

于 2011-10-21T12:55:00.130 に答える
0
  1. ルート プロジェクト フォルダー (たとえば「リソース」) にフォルダーを作成します。
  2. プロジェクト プロパティ ダイアログの [ソース] ページで、[ソース パッケージ フォルダー] テーブルの右側にある [フォルダーの追加...] ボタンをクリックします。
  3. 新しく作成したフォルダーを選択し、[OK] をクリックします。
  4. 「ソース パッケージ フォルダー」テーブルでフォルダーのラベルを変更します (たとえば、「リソース パッケージ」)。

そのフォルダー内のファイルは、アプリケーションの jar に含まれます。

于 2011-10-21T13:45:43.363 に答える