5

East レイアウトに 2 つ以上のボタンを追加すると、1 つしか表示されません。タブ付きペインを使用するレイアウトをテストしようとしています。East リージョンに複数のボタンを追加しようとすると、何らかの理由で 1 つのボタンしか表示されません。たまたま、表示されているボタンが East リージョンに追加された最後のボタンであり、残りは無視されます。最後のボタンの下に隠れているだけかもしれません。

public void createPage1()
    {
        {
            panel1 = new JPanel();
            panel1.setLayout( new BorderLayout() );

            panel1.add( new JButton( "North" ), BorderLayout.EAST );
            panel1.add( new JButton( "South" ), BorderLayout.EAST );
            panel1.add( new JButton( "East" ), BorderLayout.EAST );
            panel1.add( new JButton( "West" ), BorderLayout.EAST );
            panel1.add( new JButton( "Center" ), BorderLayout.EAST );
        }
    }
4

3 に答える 3

14

UIをどのように見せたいのかわかりませんが、次のようにしてみてください:

public void createPage1() {
    //This will be the main panel. 
    //We are going to put several buttons only in the "EAST" part of it.

    panel1 = new JPanel();
    panel1.setLayout( new BorderLayout() );

    //We create a sub-panel. Notice, that we don't use any layout-manager,
    //Because we want it to use the default FlowLayout
    JPanel subPanel = new JPanel();

    subPanel.add( new JButton( "1" ));
    subPanel.add( new JButton( "2" ));
    subPanel.add( new JButton( "3" ));

    //Now we simply add it to your main panel.
    panel1.add(subPanel, BorderLayout.EAST);
}
于 2012-07-26T17:53:05.353 に答える
4

1. JFrameのデフォルト レイアウトはBorderLayoutで、East、West、North、South、および Center エリアがあり、配置が言及されていない場合、Center がデフォルトです。

2.これで、各セクション/エリアは 1 つのウィジェット (つまり、swing コンポーネント) のみを保持できます。

3.これは、2005 年に NetBeans チームによって開発されたWindows Builder Pro を使用することで、はるかに優れた方法で実行できます。現在は Google から無料です。 Group Layout

4.それでも BorderLayout を使用したい場合JPanel、上で使用して、必要な方法でボタンを追加することをお勧めcontent paneますJFrame......

于 2012-07-26T17:40:07.170 に答える