イメージを含む Java プログラムを実行可能ファイルに変換するための jar にパッケージ化する際に、大きな問題が発生しています。画像は、プログラムとボタンの背景に使用されています。jar に変換したいプログラムを示す下の図を参照してください。
上記のように、プログラムは正常に実行されます。カスタム背景と画像を含まないカスタム ボタンを使用して同じプログラムを作成し、それを jar にパッケージ化し、続いて .exe ファイルにパッケージ化しました。
背景の描画に関しては、次のようにしています。
public void paintComponent(Graphics g) {
Image img = new ImageIcon("imgs/Bgnd1.jpg").getImage();
Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
g.drawImage(img, 0, 0, null);
}
画像付きの 4 つのカスタム ボタンの作成に関しては、次のようにしています。
// Prepare rollover images
ImageIcon F1 = new ImageIcon("imgs/btn_f1_not_selected.jpg");
ImageIcon F1rollOver = new ImageIcon("imgs/btn_f1_selected.jpg");
// Create F1 button
final JButton btnF1 = new JButton(F1);
//btnF1.setOpaque(false);
btnF1.setContentAreaFilled(false);
btnF1.setBorder(null);
btnF1.setBorderPainted(false);
btnF1.setFocusPainted(false);
btnF1.setRolloverIcon(F1rollOver);
画像をbinフォルダーに配置しようとしましたが、背景を作成するために、画像の宣言/取得に関して上記の方法を変更しました。
public void paintComponent(Graphics g) {
String path = "Bgnd11.jpg";
java.net.URL imgURL = getClass().getResource(path);
Image img = new ImageIcon(imgURL).getImage();
Dimension size = new Dimension(img.getWidth(observer), img.getHeight(observer));
setPreferredSize(size);
setMinimumSize(size);
setMaximumSize(size);
setSize(size);
setLayout(null);
g.drawImage(img, 0, 0, null);
}
以下に示すように、ボタンの作成に必要な画像を取得してボタンに渡そうとしましたが、うまくいきませんでした。
String path = "Bgnd11.jpg";
java.net.URL imgURL = getClass().getResource(path);
Image img = new ImageIcon(imgURL).getImage();
画像を見つけてロードする方法は?