1

メインフレームと3枚のパネルがあります。これらの 3 つのパネルをメイン フレームに追加したいと考えています。ただし、追加されるのはそのうちの 2 つだけです。3つ目はそうではありません。理由がわかりません。誰か助けてくれませんか?

        setLayout(new GridBagLayout());
        GridBagConstraints gbc=new GridBagConstraints();
        gbc.gridwidth=GridBagConstraints.REMAINDER;
        gbc.gridheight=GridBagConstraints.RELATIVE;
        gbc.anchor=GridBagConstraints.NORTHWEST;
        gbc.fill=GridBagConstraints.BOTH;
        gbc.weightx=gbc.weighty=1;      
        add(topPanel1, gbc);
        add(bottomPanel1, gbc);
        gbc.gridheight=GridBagConstraints.REMAINDER;
        add(buttonsPanel, gbc);

上記のコードはフレームのコンストラクターです。

4

2 に答える 2

1

目的のレイアウトに従って、gridxまたはの値を設定する必要があります。gridyたとえば、コンポーネントを垂直にレイアウトしたい場合は、次のようにします。

gbc.gridx=0;
gbc.gridy=0;
add(topPanel1, gbc);
gbc.gridy++;
add(bottomPanel1, gbc);
gbc.gridy++;
add(buttonsPanel, gbc);

値を設定しない場合gridx/y、動作は未定義です (動作する場合もあります)。

于 2011-11-08T09:43:09.760 に答える
1

gbc.gridheight=GridBagConstraints.RELATIVE;3 つのパネルを 1 つずつ追加する場合は、ステートメントを削除する必要があります。

于 2011-11-08T09:56:53.367 に答える