0

フレームのコンテナに一連のボタンを追加しようとしました。しかし、コンテナーに最後に追加されたボタンが、正しい位置ではなく常に画面全体を占めていることがわかりました。この問題を解決するにはどうすればよいですか?

これらのボタンを追加するために使用されるコードは次のとおりです。

    for(int i = 0; i < n; i++)
    {
        button[i] = new JButton();
        container.add(button[i]);
        button[i].setText(NAME[i]);
        button[i].setBounds(WIDTH-OFFSET_EDGE-bd.w, OFFSET+i*(bd.h+bd.gap), bd.w, bd.h);
        button[i].addActionListener(handler);
        button[i].setVisible(true);
    }

コンテナは次のように取得されます。

Container container = this.getContentPane();

メイン クラスは JFrame のサブクラスです。

public class SimpleTextDemo extends JFrame

今私の解決策は、表示されていない追加のボタンを使用して、便利なボタンを正しい場所に配置できるようにすることです。しかし、この方法はかなりばかげているようです...

4

2 に答える 2

1

Java では、デフォルトのレイアウトがコンテナに設定されていBorderLAyout()ます。これらを適切に追加するには、追加するボタンの位置を明示的に指定する必要があります。追加するこれらのボタンはすべて中央に追加されます。最後にすべてが重なり合っています。CENTERこれを避けるために、EASTWESTNORTH、 のような位置を与えることができますSOUTH

最後のボタンだけを表示する理由は、すべてが重なってしまうためです。

于 2013-10-24T07:43:38.440 に答える