for 循环创建按钮数组在 JPanel 中无法正确显示



所以我正在创建一个应该显示和 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);

谁能告诉我如何解决这个问题或告诉我如何使用这段代码使用不同的布局 - 我尝试了按钮的网格布局,但根本无法让它工作。

首先创建一个面板:

JPanel panel=new JPanel();

然后将布局设置为

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

然后使用 for 循环创建并添加按钮,按钮将显示在 8 x 8 网格中。谢谢。

最新更新