2013-11-12 3 views
1

У меня есть путь к изображению в строке, которую я хочу отобразить на jlabel, используя путь. пожалуйста помогите.Как отобразить изображение по его пути

if(!ar.get(16).equals("empty")){ 
    String photo=(String)ar.get(16); 

    System.out.println(photo); 
    // if(!photo.equals("")) 
    // pic.setText(photo); 

    Image image=Toolkit.getDefaultToolkit().getImage(photo);; 
    ImageIcon img=new ImageIcon(image.getScaledInstance(view.jLabel5.getWidth(), view.jLabel5.getHeight(), 0)); 


    //JpegReader jrdr=new JpegReader(); 
    //view.jLabel5.setSize(img, image.getWidth()); 
    view.jLabel5.setPreferredSize(new Dimension(100, 100)); 
    view.jLabel5.setIcon(img); 

} 
+0

Какие проблемы вы испытываете? Если 'String' - это путь и имя файла, вы должны использовать что-то вроде' ImageIO.read (новый файл (фото)); ' – MadProgrammer

+0

как я могу установить его на метку? – jaseem

+0

'ImageIcon' берет ссылку' Image', 'BufferedImage' расширяет' Image', так что в принципе, так же, как и сейчас. Где изображение живое?Это где-то в контексте приложения или файловой системы? – MadProgrammer

ответ

0

Убедитесь, что ваши пути верны. Если вы photo строка путь "photo.jpeg", ваш путь должен выглядеть примерно так

ProjectRoot 
     photo.jpeg 
     src 

Если вы хотите поместить photo.jpeg в директории images, вы должны использовать "images/photo.jpeg"

ProjectRoot 
     images 
      photo.jpeg 
     src 

Это рассматривает вас» используя IDE, например Netbeans или Ecplise.

3

Если изображение является внедренных ресурсов (то есть жизнь в контексте приложения/в комплекте с Jar приложения), то вам нужно использовать getResource, чтобы получить доступ к нему ..

Toolkit.getDefaultToolkit().getImage ожидает, что String прошло это файл в файловой системе.

Если изображение встраивается, то вам нужно будет использовать что-то больше, как ...

Toolkit.getDefaultToolkit().getImage(getClass().getResource(photo)) 

Чтобы загрузить его.

Если изображение загружается из файловой системы, вы можете использовать

File file = new File(photo); 
if (file.exists()) { 
    // Attempt to load the image 
} else { 
    // Show error message. 
} 

Из-за способа Toolkit#getImage работ, он не будет предоставлять какие-либо детали, если изображение не загружается по какой-то причине.

Вместо этого, вы должны использовать ImageIO, который сгенерирует IOException, если не удалось загрузить изображение по какой-то причине ...

BufferedImage img = ImageIO.read(getClass().getResource(photo)); 

или

BufferedImage img = ImageIO.read(new File(photo)); 

В зависимости от того, где изображение находится.

Посмотрите на Reading/Loading an Image.

Вы должны также избегать вызова setPreferredSize явно и просто позволить JLabel сделать это собственный выбор ...

1

Поместите файл изображения в проекте. В отдельной папке.

ImageIcon image = new ImageIcon(this.getClass().getResource("/images/abc.jpg")); 
JLabel imageLabel = new JLabel(image, JLabel.CENTER); 

Если вы хотите загрузить изображение в любом другом месте на вашем компьютере, а затем,

ImageIcon image = new ImageIcon("C:/images/image.png"); 
JLabel imagelabel = new JLabel(image); 
Смежные вопросы