0

私のプログラムは Eclipse で完全に動作しますが、エクスポートすると画像が表示されません。

私のセットアップは次のようになります

src
..gui
....Main.java
....menus
......MenuMain.java
res
...Logo.png

MenuMain.java から Logo.png を参照しています。さまざまな方法を試しました。

  • res/Logo.png
  • /res/Logo.png
  • .res/Logo.png
  • ../../Logo.png
  • ++++

上位 3 つは Eclipse で動作しますが、どちらも Jar では動作しません。私はJarファイルをチェックしました.resフォルダがそこにあり、すべての画像もあります. また、MANIFEST.MF を編集して Class-Path を追加しようとしました。

しかし、それでもうまくいきません。Jar を実行してもエラーは発生しません。他のすべてのファイル (ボタン、ラベル、++) が表示されます。

編集:これは GridBagLayout で JPanel を使用します。ImageIcon を JLabel に追加して、JPanel に追加できるようにします。もともと私は次のようなものを使用していました:

JLabel logo = new JLabel(new ImageIcon("res/Logo.png")); 

しかし、次のような他のバリエーションも試しました。

JLabel logo = new JLabel(new ImageIcon(MenuMain.class.getClassLoader().getResource("/res/Logo.png")));

また、getResourceAsStream()

最初のものだけが Eclipse で動作しますが、Jar には表示されません。他のものはただクラッシュします (NullPointer)

4

1 に答える 1

0

jar に Logo.png を含め、次を使用してクラスパスからリソースをロードする必要があります。ClassLoader.getResourceAsStream()

一般的なパターンは次のとおりです。

...
InputStream resource = className.class.getResourceAsStream("/res/Logo.png");
Image image = ImageIO.read(resource);
// do your display stuff here...
...
于 2013-04-04T17:59:59.747 に答える