Image image = GenerateImage.toImage(true); //this generates an image file
JLabel thumb = new JLabel();
thumb.setIcon(image)
Vous devez fournir au JLabel une implémentation Icon
(c'est-à-dire ImageIcon
). Vous pouvez le faire via la méthode setIcon
, comme dans votre question, ou via le constructeur JLabel
:
Image image=GenerateImage.toImage(true); //this generates an image file
ImageIcon icon = new ImageIcon(image);
JLabel thumb = new JLabel();
thumb.setIcon(icon);
Je vous recommande de lire la Javadoc pour JLabel
, Icon
, et ImageIcon
. En outre, vous pouvez consulter le How to Use Labels Tutorial , pour plus d'informations.
Pour obtenir une image à partir d'une URL, nous pouvons utiliser le code suivant:
ImageIcon imgThisImg = new ImageIcon(PicURL));
jLabel2.setIcon(imgThisImg);
Cela fonctionne totalement pour moi. PicUrl est une variable chaîne qui stocke l'url de l'image.
(Si vous utilisez l'EDI NetBeans) Créez simplement un dossier dans votre projet mais à l'extérieur du dossier src. Nommé le dossier Images. Ensuite, placez l'image dans le dossier Images et écrivez le code ci-dessous.
// Import ImageIcon
ImageIcon iconLogo = new ImageIcon("Images/YourCompanyLogo.png");
// In init() method write this code
jLabelYourCompanyLogo.setIcon(iconLogo);
Exécutez maintenant votre programme.
le code le plus court est:
JLabel jLabelObject = new JLabel();
jLabelObject.setIcon(new ImageIcon(stringPictureURL));
stringPictureURL est CHEMIN de l'image.
Code simple que vous pouvez écrire dans la fonction 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