Java в NetBeans, читать файл изображения из пакета Java

Интересно, кто-нибудь может помочь? Я занимаюсь разработкой Java-приложения, которое отображает изображения с диска на jframe. Используя NetBeans, я создал пакет Java под названием images в моем проекте и сохранил изображения в этом пакете. Во-первых, это то, как я должен это делать. Если я хочу, чтобы они поставлялись вместе с приложением?

У меня есть следующая функция для чтения изображения:

Image readImg(String file)
    {
        Image image = null;
        try {
            File imgFile = new File(file);
            image = ImageIO.read(imgFile);

        } catch (IOException e) {
            // System.out.println("Can not Display Image");
            e.printStackTrace();
        }
        if (image != null){       
        return image;
    } else{
        return null;
        }
    }

Моя проблема в том, что я не могу определить относительный путь к файлу, который нужно передать функции. У меня есть изображение для отображения, называя это так:

Image headerImg = readImg("C:\\Users\\D@nb0y\\Documents\\NetBeansProjects\\GiftAidApp\\src\\images\\galogo.png");

Очевидно, что это полностью развалится, если приложение будет запущено на любом другом устройстве. Кто-нибудь может подсказать мне, как сделать этот код переносимым?

Спасибо большое

1 ответ

Так как это JFrame вы пытаетесь добавить изображение, может быть лучше использовать ImageIcon вместо Image,

Попробуй это:

ImageIcon image = new ImageIcon("images/galogo.png");
JLabel imageLabel = new JLabel(image);
frame.add(imageLabel);

Это должно сделать приложение переносимым, если вы включите images папка вместе с вашим проектом.

Другие вопросы по тегам