Java: как добавить изображение в Jlabel?
Image image = GenerateImage.toImage(true); //this generates an image file
JLabel thumb = new JLabel();
thumb.setIcon(image)
5 ответов
Вы должны поставить JLabel Icon
реализация (т.е. ImageIcon
). Вы можете сделать это через setIcon
метод, как в вашем вопросе, или через JLabel
конструктор:
Image image=GenerateImage.toImage(true); //this generates an image file
ImageIcon icon = new ImageIcon(image);
JLabel thumb = new JLabel();
thumb.setIcon(icon);
Я рекомендую вам прочитать Javadoc для JLabel
, Icon
, а также ImageIcon
, Кроме того, вы можете проверить, как использовать ярлыки учебника, для получения дополнительной информации.
Чтобы получить изображение из URL, мы можем использовать следующий код:
ImageIcon imgThisImg = new ImageIcon(PicURL));
jLabel2.setIcon(imgThisImg);
Это полностью работает для меня. PicUrl является строковой переменной, которая обрабатывает URL-адрес изображения.
(Если вы используете IDE NetBeans) Просто создайте папку в своем проекте, но вне папки src. Названа папка Images. А затем поместите изображение в папку "Изображения" и напишите код ниже.
// Import ImageIcon
ImageIcon iconLogo = new ImageIcon("Images/YourCompanyLogo.png");
// In init() method write this code
jLabelYourCompanyLogo.setIcon(iconLogo);
Теперь запустите вашу программу.
Самый короткий код:
JLabel jLabelObject = new JLabel();
jLabelObject.setIcon(new ImageIcon(stringPictureURL));
stringPictureURL - это путь к изображению.
Простой код, который вы можете написать в функции main(String[] args)
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//application will be closed when you close frame
frame.setSize(800,600);
frame.setLocation(200,200);
JFileChooser fc = new JFileChooser();
if(fc.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION){
BufferedImage img = ImageIO.read(fc.getSelectedFile());//it must be an image file, otherwise you'll get an exception
JLabel label = new JLabel();
label.setIcon(new ImageIcon(img));
frame.getContentPane().add(label);
}
frame.setVisible(true);//showing up the frame