2011-12-01 15 views
36

Mam cztery przyciski w grupie BoxLayout. To tylko próbka dwóch, ponieważ jest to cały powtarzający się kod. Chcę utworzyć niewielką przestrzeń między każdym przyciskiem, aby nie wpadały na siebie. Próbowałem praktycznie każdej metody w .add(Box.Create....) i nic nie działało.Jak mogę dodać spację pomiędzy dwoma przyciskami w boxLayout?

enter.add(Box.createVerticalGlue()); 
    enter.add(Box.createHorizontalGlue()); 
    //enter.add(new JSeparator(SwingConstants.HORIZONTAL)); 
    JButton float = new JButton("LOWER"); 
    float.add(Box.createVerticalGlue()); 
    float.add(Box.createHorizontalGlue()); 
+0

Oh! Nie wiedziałem, że możesz to zrobić. – Susie

+1

Cieszę się, że mogę Ci pomóc. Możesz również odwiedzić niektóre z [wcześniejszych pytań] (http://stackoverflow.com/users/998505/susie?tab=questions), aby sprawdzić, czy mają odpowiedzi, które można oznaczyć jako "poprawne". –

Odpowiedz

71

Jeśli chcesz mieć przestrzeń między elementami, można dodać pustego granicę do jednego lub obu składników lub włóż niewidzialne komponenty, aby zapewnić przestrzeń. Możesz tworzyć niewidoczne komponenty za pomocą klasy Box.

skoro już używany klej bez powodzenia (wątpię, dlaczego?), Można spróbować czegoś podobnego obszarze sztywne,

container.add(firstComponent); 
container.add(Box.createRigidArea(new Dimension(5,0))); 
container.add(secondComponent); 

Wystarczy popatrzeć na Using Invisible Components as Filler który daje wiele opcji i wyjaśnień .


DODATKOWE INFORMACJE: Z Putting Space Between Components,

Trzy czynniki wpływają na ilość miejsca pomiędzy widocznych elementów w pojemniku:

  • kierownika układ

    Niektórzy menedżerowie układu automatycznie wstawiaj przestrzeń między komponentami; inni nie. Niektóre umożliwiają określenie ilości wolnego miejsca między komponentami. Zobacz stronę z instrukcjami dla każdego menedżera układu, aby uzyskać informacje na temat obsługi odstępów.

  • Niewidoczne elementy

    Można tworzyć lekkie komponenty, które wykonują żadnego malowania, ale to może zająć miejsca w GUI. Często używasz niewidocznych komponentów w pojemnikach kontrolowanych przez BoxLayout. Zobacz How to Use BoxLayout, aby zapoznać się z przykładami używania niewidocznych komponentów.

  • Puste granice

    Nieważne co kierownik układ, można wpływać na pozorną ilość przestrzeni między elementami dodając puste ramki do komponentów. Najlepszymi kandydatami do pustych granic są komponenty, które zazwyczaj nie mają domyślnej granicy, takie jak panele i etykiety. Niektóre inne komponenty mogą nie działać dobrze z ramkami w niektórych wyglądach i stylach, ze względu na sposób implementacji ich kodu malowania. Aby uzyskać informacje na temat granic, zobacz How to Use Borders.

+0

Świetna odpowiedź, bardzo wyczerpująca. +1 –

+0

Dziękuję bardzo - ta informacja była naprawdę pomocna! – Susie

Powiązane problemy