For循环创建按钮阵列无法在JPanel中正确显示

时间:2014-12-17 10:41:25

标签: java arrays swing layout layout-manager

所以我创建一个应该显示的按钮数组和8,8网格,而不是它显示在窗口上蔓延的非常小的按钮(连续31个按钮,两行,然后是两个按钮)第三)。如果我更换:

gamePanel1.add(buttons[a][b]);

使用:

 frame.add(buttons[a][b]);

...它显示正确,但在初始化数组时,我必须调整窗口大小以查看按钮,因为它不适合内容。

以下是创建按钮的代码:

contentPane.setLayout(new BorderLayout());    
JPanel gamePanel1 = new JPanel();


buttons = new JButton[boardsize][boardsize];
mineBoard = new int[9][9];
for (int a = 0; a < boardsize; a++) 
    for (int b = 0; b < boardsize; b++) {
        buttons[a][b] = new JButton("");
        buttons[a][b].setBounds(30+gridsize*a,30+gridsize*b,gridsize,gridsize);
        gamePanel1.add(buttons[a][b]);
        buttons[a][b].addMouseListener(new MouseListener(a,b));
        setx(a);
        sety(b);
        settried(false);
        setmine(false);

    }


    contentPane.add(gamePanel1, BorderLayout.CENTER);

任何人都可以告诉我如何解决这个问题,或者告诉我如何使用这些代码我可能会使用不同的布局 - 我尝试了按钮的网格布局,但根本无法使用它。

1 个答案:

答案 0 :(得分:1)

首先将Panel创建为:

JPanel panel=new JPanel();

然后将布局设置为

panel.setLayout(new GridLayout(8,8));

然后使用for循环创建并添加按钮,按钮将以八乘八格显示。感谢。