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.
Author by
EddJack
Updated on June 04, 2022Comments
-
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); } }