2012-07-26 11 views
5

Po dodaniu 2 + przycisków do układu wschodniego, tylko 1 pokazuje. Próbuję przetestować układ, który korzysta z okien z zakładkami. Z jakiegoś powodu, gdy próbuję dodać wiele przycisków do wschodniego regionu, wyświetla się tylko 1 przycisk. Tak się składa, że ​​wyświetlany przycisk jest ostatnim dodanym do wschodniego regionu, reszta jest ignorowana. Myślę, że mogą po prostu ukryć się pod ostatnim przyciskiem.podczas dodawania 2 + przycisków do układu wschodniego, tylko 1 pokazuje

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

zdajesz sobie sprawę, że dodanie do EAST wszystko w porządku? –

+0

Zobacz także [przykładowy układ zagnieżdżony] (http://stackoverflow.com/questions/5621338/how-to-add-jtable-in-jpanel/5630271#5630271) dla ilustracji, jak można zagnieździć układy, które będziesz trzeba użyć, jeśli chcesz dodać wiele przycisków w EAST – Robin

Odpowiedz

11

Nie wiem, jak chcesz, aby Twoje UI wyglądać, ale spróbuj to w ten sposób:

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

Myślę, że widzę, co tam zrobiłeś! O tym też wspomniała Recursed. Dzięki! – jerhynsoen

6

BorderLayout zezwala tylko na jeden komponent na sekcję. Jeśli chcesz zachować BorderLayout, ale masz 2+ przyciski, sugeruję najpierw umieszczenie każdego z tych przycisków w JPanel, a następnie umieszczenie tego JPanel w gnieździe wschodnim.

Prawdopodobnie istnieje jednak znacznie lepszy wybór układu. Wspomniasz również o zakładkach, które są już dostępne pod adresem JTabbedPane.

Zapoznaj się z różnymi LayoutManagers i spróbuj ustalić, który z nich jest odpowiedni dla Ciebie.

4

1. Układ domyślna dla JFrame jest BorderLayout i ma wschód, zachód, północ, południe i centrum zabaw, z których centrum znajduje się domyślna jeśli pozycjonowanie nie jest wymieniona.

2. Teraz każda sekcja/obszar może posiadać tylko jeden widżet (składnik huśtawka tzn.).

3. Trzeba będzie to zrobić w znacznie lepszy sposób za pomocąGroup Layout, który został opracowany przez zespół NetBeans w 2005 roku, należy Okna Builder Pro, teraz wolne od google.

4. Ale jeśli nadal chcesz iść z BorderLayout, ja proponuję użyć JPanel na content pane z JFrame do dodać przyciski w sposób chcesz ......

Powiązane problemy