2015-08-09 7 views
0

Я хочу прочитать изображения из папки ресурсов затмения без использования имени изображения. На данный момент я читаю его из текущего каталога и беря Absolute Path (photoPath), чтобы воспроизвести изображение в другой панели JFrame. Однако, если я создаю исполняемый jar, его начало будет принимать изображения из текущего каталога, моя папка с изображениями не будет. Вот мой выбор Изображение кодПрочтите изображения из папки ресурсов затмения без использования имени изображения

imageChooser = new JButton("ImageChooser"); 
    panel1.add(imageChooser); 
    fc = new JFileChooser(); 
    imageLabel = new JLabel(); 
    imageChooser.addActionListener(new ActionListener() { 

     public void actionPerformed(ActionEvent e) { 

      fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
      fc.setCurrentDirectory(new File(".")); 
      int result = fc.showOpenDialog(imageChooser); 

      if (result == JFileChooser.APPROVE_OPTION) { 

       currentFile = fc.getSelectedFile(); 
       imageLabel.setIcon(new ImageIcon(currentFile.toString())); 
       panel1.add(imageLabel); 
       panel1.validate(); 
       photoName=fc.getSelectedFile().getName(); 
       photoPath = currentFile.getAbsolutePath(); 
      } 
     } 
    }); 

Вот моя структура

enter image description here

+1

Особенно сложно перечислить ресурсы, встроенные в ваше приложение jar, для этого требуется сделать так много предположений о состоянии приложения. В этих случаях у меня есть другой файл, в котором перечислены все ресурсы по имени. Я либо вручную обновляю файл, либо использую какую-то автоматизацию сборки для генерации файла. Это означает, что вся моя точка входа вращается вокруг одного файла вместо необходимости делать предположения о том, где находится файл Jar (или какой файл jar содержит изображения) – MadProgrammer

+0

Мне очень жаль, но я не мог понять вас !!! Если я получу класс(). getResources() Мне нужно указать имя изображения. Можете ли вы PLZ предложить мне что-то? – Ani

+1

Итак, поместите имена файлов в текстовый файл, который также встроен в ваше приложение, он должен содержать список изображений. Используйте его, чтобы вы могли загружать изображения во время выполнения, не зная имена. [Например] (http://stackoverflow.com/questions/18758105/how-can-i-count-the-number-of-files-in-a-folder-within-a-jar/18758724#18758724) – MadProgrammer

ответ

1

использование .getResource()

Пример:

new ImageIcon(getClass().getResource("/images/button.png")) 

Это будет работать для JAR, а также.

+0

Привет, но я не могу указать имя файла, которое оно должно быть динамическим – Ani

Смежные вопросы