2012-07-26 8 views
5

東のレイアウトに2つ以上のボタンを追加すると、1つだけが表示されます。私はタブ付きペインを使用するレイアウトをテストしようとしています。何らかの理由で、東の地域に複数のボタンを追加しようとすると、ボタンが1つしか表示されません。表示されたボタンが東領域に追加された最後のボタンであり、残りは無視されます。私は彼らがちょうど最後のボタンの下に隠れているかもしれないと思っています。東のレイアウトに2つ以上のボタンを追加すると、1つだけが表示されます

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); 
     } 
    } 
+0

あなたはEASTの右にすべてを追加している実感しますか? –

+0

レイアウトをネストする方法については、[ネストされたレイアウトの例](http://stackoverflow.com/questions/5621338/how-to-add-jtable-in-jpanel/5630271#5630271)を参照してください。あなたがEASTに複数のボタンを追加したい場合に使用する必要があります – Robin

答えて

11

私はあなたの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); 
} 
+0

私はあなたがそこで何をしたかを見ていると思います! Recursedも同様に言及されたものです。ありがとう! – jerhynsoen

6

BorderLayoutセクションごとに1つのコンポーネントしか許可しません。 BorderLayoutを保ちたいが、2+個のボタンがある場合は、最初にそれらのボタンをそれぞれJPanelに入れて、JPanelをイーストスロットに入れておくことをお勧めします。

しかし、おそらくレイアウトの選択肢はずっとあるでしょう。あなたはまた、すでにJTabbedPaneがあるタブについて言及します。

別のLayoutManagersを確認し、どちらが適切かを判断してください。

4

1.たJFrameためデフォルトのレイアウトはBorderLayoutであり、それは東、西、北、南、および位置決めが言及されていない場合、センターは、デフォルトで出ているの中心領域を持っています。

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

3.あなたは今、無料のGoogleから、このは2005年にNetBeansのチームによって開発されたGroup Layoutを、使用してはるかに優れた方法で行われていWindowsのビルダーProを使用します。あなたはまだBorderLayoutのと一緒に行きたい場合は

4.

しかし 、私はあなたが欲しい方法でJFrame追加へのボタンのcontent paneJPanelを使用することをお勧めします......