Я создал GUI программу в Java, и у меня есть класс с оператором метода и переключателя, который будет отображать изображение в новом JFrame в зависимости от нажатой кнопки. Код в целом неуклюжий и не имеет никакой обработки ошибок (я изначально делал это для назначения, и я сам сейчас строю на нем), но я хотел знать, есть ли способ загрузить изображения без жесткого кодирования их местоположение. Прямо сейчас изображения находятся в каталоге root, поэтому NetBeans может получить к нему доступ без жесткого кодирования, но есть ли способ заставить его отображать изображения после того, как я преобразую его в файл .jar без жесткого кодирования местоположения файла, особенно если Я хочу иметь возможность использовать его на разных компьютерах? Я включил метод ниже.
Спасибо!
/* method to display images of 3D shapes using switch cases and a new JFrame
depending on which shape button is selected */
public void displayOutput(int x) {
JFrame f = new JFrame();
f.setBounds(200, 200, 850, 600);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationRelativeTo(null);
ImageIcon icon = new ImageIcon("");
switch(x) {
case 1:
icon = new ImageIcon("sphere.png");
break;
case 2:
icon = new ImageIcon("cube.jpg");
break;
case 3:
icon = new ImageIcon("cone.png");
break;
case 4:
icon = new ImageIcon("cylinder.png");
break;
case 5:
icon = new ImageIcon("torus.png");
break;
}
JLabel image = new JLabel(icon);
f.add(image);
f.setVisible(true);
}