java - 如何在 JLabel 上显示多个图像

标签 java swing jlabel

这是一个类项目,我需要显示多个图像,但它只打印出最后一个 label.setIcon。我应该怎么办?

 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);

  }
}

最佳答案

发生这种情况是因为 JLabel 只能容纳一个 Image。为了解决您的问题,您可以创建一个 JPanel,每个图像有 3 个标签。检查下一个示例:

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) - 是您的图像。

关于java - 如何在 JLabel 上显示多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21001438/

相关文章:

java - Grizzly Http Server - 一次只接受一个连接

java - GUI 连接到 Java Windows 服务

Java 7 调整 JFrame(我的 GUI)的大小 : the componentListener is not getting fired

java - 再次使 JLabel 背景透明

java - JLabel/JPanel 定位问题。 (网格包布局)

java - 如何动态添加 JLabels 到 JPanel?

java - java项目文档(markdown)

java - 如何在 android 谷歌地图版本 2 中的 2 个地理点之间画线?

java - jtable编辑时将 ""带入数据库

java - 无法禁用 DateEditor 的 JTextField 的编辑?