0

我在 jframe 上的 jlabel 内遇到 jbuttons 问题。

我正在尝试制作一个类似扫雷的游戏,我需要很多 jbuttons - 在这种情况下有 225 个,我将按钮设置在一个字符串中,并添加了一个 for & if 语句。问题是,当我编译程序并运行它时,最初 jbuttons 没有正确对齐,但是当我用鼠标在任一方向调整 jframe 的大小时,按钮突然对齐。

调整大小之前

在此处输入图像描述

调整大小后

在此处输入图像描述

public class Minesweeper {

    public final void initUI() {
        JFrame frame = new JFrame("Minesweeper");
        frame.setSize(320, 300);
        frame.setBackground(Color.WHITE);
        frame.setVisible(true);
        frame.setLayout(new GridLayout(1, 1, 0, 0));
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(15, 15, 0, 0));
        frame.add(panel);    
        String[] buttons = {
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "", 
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "", 
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "",
            "", "", "", "", "", "", "", "", "", "", 
            "", "", "", "", "", 
        };    

        for (int i = 0; i < buttons.length;) {    
            if (i < buttons.length) {
                panel.add(new JButton(buttons[i]));
                i++;
            } else {
                System.out.println("Unknown error 100");
            }
        }
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
    }

    public static void main(String[] args) {    
         Minesweeper ex = new Minesweeper();
         ex.initUI();                
    }
}
4

0 回答 0