如何将图像用Java GUI引入新行?

时间:2015-05-02 08:28:01

标签: java swing layout awt layout-manager

我正在尝试用图像制作一个简单的gui窗口。 这是我的代码:

import java.awt.*;

import javax.swing.*;
public class Image extends JFrame
{
    private ImageIcon [] image = new ImageIcon[10];
    private JLabel [] label = new JLabel[10];

    Image()
    {
        setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();


        for(int i=0; i<10; i++)
        {
            for(int j = 0; j<10;j++)
            {
            image[i] = new ImageIcon(getClass().getResource((i+1) +".jpg"));
            label[i] = new JLabel (image[i]);
            c.fill = GridBagConstraints.REMAINDER;
            c.gridx = j;
            c.gridy = i;
            add(label[i]);
            }
        }
    }

    public static void main(String[] args)
    {
        Image i = new Image();
        i.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        i.setVisible(true);
        i.pack();
        i.setTitle("My Title");
    }

}

我要做的是在计数器退出内循环后,它应该在窗口中的新行上。

但是我把整个事情放在同一条线上。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

添加标签时,您需要将约束作为参数传递:

add(label[i], c);

而不是

add(label[i]);

与问题没有直接关系,但您应该在event dispatch thread中创建GUI;此外,只有在准备就绪后才能在框架上调用setVisible(true)