Подтвердить что ты не робот

Добавить изображение в JAR Java

Я использую некоторые изображения в JFrame, я дал путь для загрузки изображения в панель кадра, но когда я сделал банку приложения, он не отобразил изображения.
Где разместить изображение? Как указать путь?

setIconImage(Toolkit.getDefaultToolkit().getImage(
                "D:\\RFT\\src\\dailogBox\\dump.jpg"));

как это я сделал.

4b9b3361

Ответ 1

Первый шаг: поместите свое изображение в определенное место в вашем JAR файле. Если вы поместите его в папку src, возможно, ваша среда IDE или ваш сборщик автоматически упакуют ее в JAR. В противном случае проверьте документацию вашего средства IDE/build-tool, в каком месте вы должны поместить его.

Второй шаг: доступ к файлу из вашей программы. Я предполагаю, что вы положили его в пакет (путь в вашем JAR) package1/package2, и файл называется dump.jpg. В этом случае вы вызываете:

setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/package1/package2/dump.jpg")));

getClass(). getResource (...) возвращает URL-адрес ресурса в вашем пути к классам. Вы запускаете путь в пути к классам с помощью '/' и используете полный путь/пакеты к вашему ресурсу, разделенные символом '/'.

Ответ 2

Это лучший способ обработки всех изображений и значков в приложении JAR.

После того, как вы закрепили все ваши изображения и значки в свой собственный файл JAR - Настройте свой путь сборки, добавив файл JAR изображений на вкладку "Библиотеки", чтобы он теперь включался в ваш путь к классам.

Затем просто используйте следующие 3x строки кода в начале вашего constuctor для доступа к любому изображению, которое вам нужно для чего-либо, включая образ SystemTray, который не принимает простой ImageIcon в качестве основного значка ( странно, я знаю). Строки 3x:

  URL iconUrl = this.getClass().getResource("/image-iconb.png");
  Toolkit tk = this.getToolkit();
  someimgicon = tk.getImage(iconUrl);

(someimgicon - это только объявленная конструктором Image variable) Теперь вы можете установить значок окна так же, как:

setIconImage(someimgicon);

и используют одну и ту же переменную при установке System TrayIcon, объявляя:

 trayIcon = new TrayIcon(someimgicon, "SystemTray Demo", popupMenu);

Вышеупомянутое позволяет легко и централизованно объявлять Images или ImageIcons, не рискуя не хранить ресурсы изображения в нужном месте. Это держит его красивым и аккуратным: JAR, содержащий все ваши изображения, автоматически скомпилированные во время выполнения и распространения вашей программы.

В качестве бонуса, как только JAR зарегистрирован в вашем пути к классу, вы можете в любое время добавлять любые другие изображения в один JAR в любое время без суеты. Все просто работает, а добавленные изображения мгновенно доступный вашему приложению.

Гораздо лучше, на мой взгляд.

Ответ 3

Сначала создайте пакет (скажите изображения) в разделе "Исходные пакеты"

скопируйте все ваши изображения в этот пакет (при создании пакета в папке src проекта будет создана папка с именем вашего пакета, поэтому скопируйте ее на нее)

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

Пример 1:

        this.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/images/yourimagename")));

Пример 2:

        URL imageurl = getClass().getResource("/images/imagename");//assuming your package name is images 
        Image myPicture = Toolkit.getDefaultToolkit().getImage(imageurl);
        JLabel piclabel = new JLabel(new ImageIcon( myPicture ));
        piclabel.setBounds(0,0,myPicture.getWidth(null),myPicture.getHeight(null));

Теперь используйте этот плейлист JLabel

Ответ 4

Существует много способов, например сделать папку с ресурсами в вашем файле jar и ссылаться на ваши изображения с помощью относительного пути....

Ответ 5

Добавьте изображение в свою банку в качестве ресурса, затем (предположим, что банка находится в вашем пути к классам), используйте загрузчик классов загрузите его как поток.

Ответ 6

В netbeans 8.1 я сделал, чтобы включить папку значков и других изображений, называемых Ресурсы внутри папки src в файле проекта. Поэтому всякий раз, когда я создаю файл Jar, папка будет добавлена ​​туда. Дерево файлов должно быть таким:

  • src (файлы Java в исходных пакетах здесь)
  •   
  • ** ПАКЕТ, ВЫ НАХОДЯЩИЙСЯ В ПРОЕКТЕ **

         
      
    •     
    • file.java    
      
      
  • Ресурсы

         
      
    •     
    • image.jpg    
      
      

Код должен выглядеть следующим образом:

jToggleButton1.setIcon(new javax.swing.ImageIcon(this.getClass().getResource("/resources/image.jpg")));

Ответ 7

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

Скажите в коде, который вы вызываете изображение следующим образом:

pic = new ImageIcon("Pics/buttonpic.jpg");

Это означает, что ваше изображение будет называться buttonpic и находится в папке Pics в каталоге проекта. Теперь после того, как вы создадите файл jar, скопируйте папку Pics в ту же папку, в которой находится файл jar.

Пример: если ваш файл jar находится на вашем рабочем столе, поместите папку Pics на рабочий стол. Теперь, когда вы запустите файл jar, ваши снимки будут работать правильно. Теперь, чтобы скрыть тот факт, что вам нужна папка Pics рядом с вашим файлом jar, вы можете создать новую папку и разместить в этой папке свою банку и папку Pics. Затем щелкните правой кнопкой мыши на банке и создайте ярлык, затем поместите этот ярлык на рабочий стол или где вы хотите иметь только файл jar и поместите новую папку, которую вы создали, где бы вы ее не скрывали.