这是一个类项目,我需要显示多个图像,但它只打印出最后一个 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/