Gridlayout 有自己的边距

Gridlayout makes it's own margin

我一直在用 grid gui 制作游戏,我制作了 MyPanel,它扩展了 JPanel 以显示 bg 图像,并拥有自己的按钮。问题是,当我制作大于 12x12 的网格布局时,它会生成自己的 magin:

左边的图片是 <=13 的情况,按钮非常适合,当右边的图片中,>13 的情况下有 小边距,我无法摆脱 .代码:

private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 450, 300);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        MyPanel panel = new MyPanel();
        panel.setBounds(10, 10, 360, 360);
        frame.getContentPane().add(panel);
        panel.setLayout(new GridLayout(size,size));

        buttons = new Button[size][];
        for(int i=0;i<size;i++)
        {

            buttons[i] = new Button[size];
            for(int j=0;j<size;j++)
            {
                buttons[i][j] = new Button();
                panel.add(buttons[i][j]);
            }
        }
    }

不要使用空布局!

使用布局管理器的要点是布局管理器将决定面板的大小。

然后您只需在框架上使用 pack(),所有组件将以其首选大小显示。

另外,不要使用 Button,那是一个 AWT 组件。 Swing 组件以 "J" 开头,因此您应该使用 JButton.