Упаковка программы, содержащей изображения
У меня большие проблемы с упаковкой моей java-программы, которая содержит изображения в 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();
Как найти и загрузить изображения?