2014-01-08 2 views
0

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

File ImageDisplay = new File("src/icons/random.png"); 
BufferedImage originalImage = ImageIO.read(ImageDisplay); 
ImageIcon icon = new ImageIcon(originalImage); 

Теперь, если я запускаю это, все работает отлично, и это изображение появляется на каждом фильме.

Но я хочу сделать что-то вроде этого:

File ImageDisplay = new File("src/icons/"+MOVIE_TITLE+".png"); 
BufferedImage originalImage = ImageIO.read(ImageDisplay); 
ImageIcon icon = new ImageIcon(originalImage); 

Где MOVIE_TITLE это название фильма из базы данных. Но это дает мне ошибку, о которой я не могу понять, почему. если я удалить все и просто распечатать его с помощью:

System.out.println("src/icons/"+MOVIE_TITLE+".png"); 

Выход в консоли правильно для каждого фильма, где он печатает например: Godfather.png и так далее. Что мне не хватает?

+0

Какая ошибка вы получаете? Можете ли вы разместить свой код в форме [SSCCE] (http://sscce.org)? –

+0

Это просто, когда в названии фильма есть пробелы? – CodeChimp

+0

Если вы используете Eclipse, вам может потребоваться обновить проект, чтобы он знал о новых файлах, которые вы добавили. –

ответ

0

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

Я решил проблему, проверяя, существует ли файл первым с этим кодом:

if(ImageDisplay.exists()) { 
      ImageDisplay = new File("src/icons/"+titleString+".png"); 
      } else { 
       ImageDisplay = new File("src/icons/SsSs.png"); 
      } 

И если изображение не существует заменить его другим.

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