3

我正在为我正在创建的一个简单游戏制作关卡编辑器,在关卡编辑器中,我希望有一些在网格上对齐的按钮和标签。几乎是 gridlayout 的设计目的。

以下代码出于某种我无法理解的邪恶原因,仅在彼此下方添加元素,如下所示:

地图宽度:

地图高度:

地图深度:

它 - 应该 - 看起来像这样:

地图宽度: 地图高度:

地图深度:

我已经尝试了一个小时,但我几乎很难过,这不应该像让它工作那样付出太多的努力,但它确实如此。

    private void drawUiElements()
{
    int xLoc = (int) (dim.width * 0.75);
    int yLoc = 0;
    int width = (int) (dim.width * 0.25);
    int height = dim.height;

    JPanel buttonContainer = new JPanel();
    buttonContainer.setLayout(new GridLayout(16, 2, 5, 5));
    buttonContainer.setBounds(xLoc, yLoc, width, height);
    buttonContainer.setName("buttonContainer");

    JLabel labelx = new JLabel("Map Width:");
    JLabel labely = new JLabel("Map Height:");
    JLabel labelz = new JLabel("Map Depth:");

    buttonContainer.add(labelx, "1");
    buttonContainer.add(labely, "2");
    buttonContainer.add(labelz, "3");

    add(buttonContainer);
}

谢谢。

4

1 回答 1

3

使用时不能将组件添加到特定单元格GridLayout。您可以将初始行数设置为,0以便组件以rows-first填充。

buttonContainer.setLayout(new GridLayout(0, 2, 5, 5));

See: How to Use GridLayout

于 2012-12-02T12:24:35.690 回答