JPanel grid = new JPanel();
    GridLayout layout = new GridLayout (6,7,0,0);
    grid.setLayout (layout);

    slot = new ImageIcon ("");

    for (int x = 0; x < 42; ++x)
    {
        slotbtn = new JButton(slot);
        slotbtn.setContentAreaFilled (false);
        //slotbtn.setBorderPainted (false);
        slotbtn.setBorder (BorderFactory.createEmptyBorder (0,0,0,0));
        slotbtn.setFocusPainted (false);
        grid.add(slotbtn);
    }


这是我得到的输出:


我正在创建一个6x7的网格。我需要的输出是行和列之间没有空格,所有内容都应压缩在一起。我试过打包,但没有用。我究竟做错了什么?

-我尝试了FlowLayout,但是我不得不调整框架的大小,并且框架上还有其他按钮,所以我认为我不希望调整其大小以使按钮适合其合适的位置。
-我将此JPanel放置在另一个jpanel(使用borderlayout并包含其他两个面板)中,并将其放置在中心,即另外两个面板北和南。

最佳答案

之所以会出现此问题,是因为您将grid(网格的整个大小)划分为7*6,因此,如果您调整窗口的大小,您会发现此间隙发生了变化,因此如果您不希望删除此间隙,


计算窗口的大小(例如:width = 7 *图片的宽度,hight = 6 *您的法师的高度)
或调整图片大小

10-05 21:56