Как получить элементы ImageIcon из векторных строк?

Я делаю это небольшое приложение для просмотра изображений. Пользователь вводит имя файла, например. image1.gif, и он заполнит Vector из String, и оттуда я надеюсь связать его с ImageIcon, чтобы отобразить его на JLabel. Я застрял в данный момент, потому что я полностью потерялся в том, как продолжить работу оттуда. Не могли бы вы дать мне совет или предложение? Спасибо!

Vector <String> imageDetails = new Vector <String>;

ImageIcon imageGraphic = new ImageIcon(imageDetails.toString());

imageLabel.setText(imageDetails.get(0));

person Scorpiorian83    schedule 20.07.2014    source источник
comment
Поскольку Vector является устаревшим, также рассмотрите другой _ 2_.   -  person trashgod    schedule 21.07.2014


Ответы (2)


Вы можете получить изображение по имени файла, используя ImageIO библиотека.

Image image = ImageIO.read(new File("images/fileName.png"));
ImageIcon imageGraphic = new ImageIcon(image);

Вызовите JLabel #setIcon (), чтобы установить значок метки.

Вы можете попробовать любой, в зависимости от местоположения изображения.

// Read from same package 
ImageIO.read(getClass().getResourceAsStream("c.png"));

// Read from images folder parallel to src in your project
ImageIO.read(new File("images/c.jpg"));

// Read from src/images folder
ImageIO.read(getClass().getResource("/images/c.png"))

// Read from src/images folder
ImageIO.read(getClass().getResourceAsStream("/images/c.png"))

Подробнее…

Стоит прочитать Руководство по Java на странице Загрузка изображений с помощью getResource

person Braj    schedule 20.07.2014

Вам нужно получить элемент из Vector, который вы хотите загрузить. Например...

ImageIcon imageGraphic = new ImageIcon(imageDetails.get(0));

Как уже было сказано, ImageIO.read было бы лучшим выбором, чем просто использование ImageIcon(String), поскольку ImageIO выдаст Exception, если что-то пойдет не так с чтением изображения.

Примерно на этом этапе я мог бы также рассмотреть возможность использования Map вместо Vector, это позволит вам связать значение String с фактическим изображением. Для получения дополнительных сведений ознакомьтесь с Collections API.

person MadProgrammer    schedule 20.07.2014
comment
спасибо за вашу помощь и ссылку, чтобы узнать больше, приятель! - person Scorpiorian83; 21.07.2014