How to display multiple images on a JLabel

10,262

That happens because JLabel can hold only one Image. For solving your problem you can create a JPanel with 3 labels for each image. Examine next example:

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Example extends JPanel {

    public Example() {
         ImageIcon icon = new ImageIcon(this.getClass().getResource(IMAGE1));
         ImageIcon icon1 = new ImageIcon(this.getClass().getResource(IMAGE2));
         ImageIcon icon2 = new ImageIcon(this.getClass().getResource(IMAGE3));
         JLabel label1 = new JLabel(icon); 
         JLabel label2 = new JLabel(icon1); 
         JLabel label3 = new JLabel(icon2); 

         add(label1);
         add(label2);
         add(label3);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();

        frame.add(new Example());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }
}

IMAGE(1,2,3) - is your images.

Share:
10,262
EddJack
Author by

EddJack

Updated on June 04, 2022

Comments

  • EddJack
    EddJack about 2 years

    This is a class project and I need to display more than one image but it only prints out the last label.setIcon. What should I do?

     package Rectangle;
     import java.awt.*;  
     import javax.swing.*;
    
     public class Rectangle extends JFrame { 
    
    
     public Rectangle(String arg) { 
    
      JPanel panel = new JPanel(); 
        panel.setBackground(Color.BLACK); 
        ImageIcon icon = new ImageIcon(this.getClass().getResource("1676858-livingforest2011.jpg"));
        ImageIcon icon1 = new ImageIcon(this.getClass().getResource("20496aa0.gif"));
        ImageIcon icon2 = new ImageIcon(this.getClass().getResource("akuma-ragingdemon-yes.gif"));
        JLabel label = new JLabel(); 
        label.setIcon(icon2); 
        label.setIcon(icon1); 
        label.setIcon(icon);
        panel.add(label);
        this.getContentPane().add(panel); 
    
      }
          public static void main(String[] args) {
          Rectangle forestFrame = new Rectangle(args.length == 0 ? null : args[3]);
          forestFrame.setSize(1698,770);
          forestFrame.setVisible(true); 
          forestFrame.setVisible(true);
    
      }
    }