3

私が作成している単純なゲームのレベル エディターを作成しています。レベル エディターでは、グリッド上に配置されたいくつかのボタンとラベルが必要です。gridlayout が設計された目的とほぼ同じです。

次のコードは、私を超えた何らかの不浄な理由で、次のように要素を相互に追加するだけです。

地図の幅:

マップの高さ:

地図の深さ:

次のようになります。

地図の幅: 地図の高さ:

地図の深さ:

私は1時間試してみましたが、ほとんど困惑しています.これは、動作させるのにそれほど多くの労力を必要としないはずですが、動作します.

    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で埋められるように、行の初期数を に設定できます。

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

参照: GridLayout の使用方法

于 2012-12-02T12:24:35.690 に答える