Gridlayout仅垂直添加元素,而不是水平添加元素

时间:2012-12-02 12:06:03

标签: java grid-layout

我为一个简单的游戏创建了一个关卡编辑器,我在关卡编辑器中创建了一些按钮和标签,这些按钮和标签在网格上对齐。几乎是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);
}

感谢。

1 个答案:

答案 0 :(得分:3)

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

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

请参阅:How to Use GridLayout