Как найти путь к изображению в плагине Netbeans Plaform Maven

1

Я пытаюсь написать плагин для IDE NetBeans. Но у меня проблема с поиском правильного пути к некоторому изображению:

Вот моя древовидная структура проекта:

Изображение 174551

И тестовый код, похожий на этот значок значка dosent wePagesBadge.gif

        ImageIcon image = new ImageIcon("webPagesBadge.gif");
        JOptionPane.showMessageDialog(null, "Some Messsage","Example",JOptionPane.INFORMATION_MESSAGE,image);

конечно, когда я помещал это изображение в корневую папку, где у меня на локальном компьютере установлен netbeans значок появляется в JOptionPane. Этот путь

 C:\Program Files\NetBeans 8.0

Другой пример - когда я не использую Maven Project Type для разработки плагина, но модуль Netbeans Module Тип проекта:

Изображение 174551

на этот раз изображение появится на JOptionPane. Я потратил много времени, чтобы найти ответ, и у меня нет идеи, как его исправить.

  • 0
    Вы должны следовать соглашениям в Maven, что означает наличие таких ресурсов, как изображения, в папке src/main/resources/ а НЕ в папке src/main/java .
Теги:
maven
netbeans
netbeans-plugins
netbeans-platform

2 ответа

2

Я нашел ответ, как это исправить. Принудительно использовать код:

    ImageIcon image = new ImageIcon("webPagesBadge.gif");
    JOptionPane.showMessageDialog(null, "Some Messsage","Example",JOptionPane.INFORMATION_MESSAGE,image);

я использую

     ImageIcon image = new ImageIcon(ImageUtilities.loadImage("webPagesBadge.gif"));
     JOptionPane.showMessageDialog(null, "Some Messsage","Example",JOptionPane.INFORMATION_MESSAGE,image);

и я помещаю изображение в:

Изображение 174551

Метод, который я использую для загрузки изображения

    ImageUtilities.loadImage("webPagesBadge.gif")

из org.openide.util.ImageUtilities

2

Плохая практика заключается в том, чтобы размещать ресурсы в исходном пакете

создайте папку my имя ресурсов в разделе src/main/resources, а затем попробуйте прочитать ее, используя

className.class.getClassLoader().getResource("yourImageFile");

Так что это должно делать работу

ImageIcon imageIcon = new ImageIcon(PDFGenerator.class
                                                .getClassLoader()
                                                .getResource("yourIcon.gif"));
  • 0
    +1, ClassLoader - единственный способ, который я видел, который работает как для проектов Netbeans, так и для упакованных JAR-файлов.
  • 0
    Слава Богу, @SparkOn! Я искал это в течение нескольких дней, и ничего не помогло. Ваш метод наконец-то сделал. +1

Ещё вопросы

Сообщество Overcoder
Наверх
Меню