For循环添加多个JLabel

时间:2014-07-26 16:23:20

标签: java user-interface for-loop

我想在其中创建一个带有图片的网格,我想知道你是否可以制作一个for循环来更有效地完成这项工作。我手动完成了前几张图片,但需要大量代码才能添加所有图片。我有7个JPanels,每个面板必须包含7个JLabel,每个JLabel都设置为图像(编号并从4开始)。

{
JLabel label1 = new JLabel();
label1.sedIcon(new ImageIcon("4.jpeg"));
p1.add(label1);

JLabel label2 = new JLabel();
label2.setIcon(new ImageIcon("5.jpg"));
p1.add(label2);

JLabel label3 = new JLabel();
label3.setIcon(new ImageIcon("6.jpg"));
p1.add(label3);

JLabel label4 = new JLabel();
label4.setIcon(new ImageIcon("7.jpg"));
p1.add(label4);

JLabel label5 = new JLabel();
label5.setIcon(new ImageIcon("8.jpg"));
p1.add(label5);

JLabel label6 = new JLabel();
label6.setIcon(new ImageIcon("9.jpg"));
p1.add(label6);


JLabel label7 = new JLabel();
label7.setIcon(new ImageIcon("10.jpg"));
p1.add(label7);

JLabel label8 = new JLabel();
label8.setIcon(new ImageIcon("11.jpg"));
p1.add(label8);

JLabel label9 = new JLabel();
label9.setIcon(new ImageIcon("12.jpg"));
p2.add(label9);
}

3 个答案:

答案 0 :(得分:4)

for (int i = 4; i < 13; ++i) {
    JLabel l = new JLabel();
    l.setIcon(new ImageIcon(i + ".jpeg"));
    p1.add(l);
}

答案 1 :(得分:1)

你可以像下面那样

    JPanel[] jpanels = new JPanel[7];
    for(JPanel panel : jpanels) {
        int imageNo = 4;
        for(int i=0;i<=7;i++) {
            JLabel label = new JLabel();
            label.setIcon(new ImageIcon(imageNo + ".jpg"));
            imageNo++;
            panel.add(label);
        }
    }

答案 2 :(得分:1)

int value = 7;
JPanel[] panels = new JPanel[value];
JLabel[] labels = new JLabel[panels.length];
String fileExtension = "jpg";
for (int i = 0; i < labels.length; i++) {
    labels[i] = new JLabel();
    labels[i].setIcon(new ImageIcon(i + "." + fileExtension));
    panels[i].add(labels[i]);
}