Использование ImageIcon и JLabel - PullRequest
1 голос
/ 13 июля 2011

Моя цель - создать imageIcon и добавить его, чтобы JLabel отображался в моем графическом интерфейсе.Пока мой код:

package classes;

import javax.swing.*;

public class Picture extends JFrame {

    private ImageIcon _image1;
    private JLabel _mainLabel;      

    public Picture(){           
        _image1 = new ImageIcon("picture1.jpg");
        _mainLabel = new JLabel(_image1);
        add(_mainLabel);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }    
}    

package classes;

public class Driver {    
    public static void main(String[] args) {
        Picture p = new Picture();    
    }    
}

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

Ответы [ 2 ]

3 голосов
/ 13 июля 2011

Вы уверены, что Java ищет нужное место для файла picture1.jpg? Этот файл находится в текущем рабочем каталоге?

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

// show the current working directory
System.out.println("current working directory is: " + System.getProperty("user.dir")); 

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

Edit:
Кроме того, не забудьте упаковать ваш JFrame, чтобы он располагал компоненты и соответствовал их размеру:

   public Picture() {

      _image1 = new ImageIcon(IMAGE);
      _mainLabel = new JLabel(_image1);
      add(_mainLabel);

      pack(); // to tell the layout managers to set up the GUI
      setLocationRelativeTo(null); // center things
      setVisible(true);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   }
0 голосов
/ 14 мая 2012

Для установки изображения в jlabel просто введите в вашу программу однострочный код:

yourlabel.setIcon(new javax.swing.ImageIcon(getClass().getResource("your image location here")));

мы можем установить Jlabel с изображением и текстом также.

...