4

GUI に 6 つの JButton があり、すべてイメージがあります。コードをコンパイルして実行すると、JButton のすべてのイメージが完全に表示されますが、実行可能な JAR ファイルでは、JButton のイメージが表示されません。この問題を解決するにはどうすればよいですか?

コードでこのメソッドを使用して、JButtons にアイコンを表示しました

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");
jb1 = new JButton(SettingsIc);
jb1.setFocusPainted( false );
//jb1.setBorderPainted(false); 
jb1.setContentAreaFilled(false);

これは、Eclipse でコードをコンパイルしたときの GUI の外観です。 ここに画像の説明を入力

これは、Runnable JAR ファイルを実行した後の私の GUI の外観です。 ここに画像の説明を入力

4

2 に答える 2

5

これは(多くの人が指摘したように)

ImageIcon SettingsIc = new ImageIcon("bin/images/settings.png");

bin/imagesオフ・ザ・ファイル・システムからイメージをロードしようとしていることを示唆しています。これは、アプリケーションの実行ポイントからの相対パスです。

ImageIconファイルが存在しない場合は文句を言いません。

可能であれば、Jar ファイル内にリソースを埋め込み (デプロイが容易になります) getClass().getResource("/bin/images/settings.png")、イメージの読み込みなどを使用することをお勧めします。

/が指すリソースが存在しない (または無効である)場合ImageIO.read(URL)は、例外がスローされます。FileURL

于 2013-01-30T04:13:57.197 に答える
-2

jar と画像を同じフォルダーに保管し、そのままにしておくだけです。

ImageIcon icon = new ImageIcon("image.jpg");

コードで

于 2014-05-28T05:36:32.053 に答える