Menadżery rozkładu - szablony, GridLayout

0

Mam straszny problem z rozstawieniem przycisków itp... Dużo czytałem o menadżerach rozkładu ale słabo mi to wychodzi. Są może jakieś "szablony" do tego?

Mam też pytanie na temat GridLayout - czy można wysokość komórki ustalić?

1

Nie znam "szablonów", ale uzyskuję zawsze takie rozmieszczenie jak chcę. Możesz korzystać z graficznych designerów, NetBeans ma wbudowany, Eclipse ma wtyczkę WindowBuilder (generowany kod wygląda lepiej). Możesz też zrobić "odręczny" rysunek tego co chcesz uzyskać, podpowiem jakiej kombinacji menadżerów użyć. Przy bardziej skomplikowanym rozmieszczeniu potrzebna jest hierarchia: menadżer dla JFrame, komponentami są obiekty typu JPanel z własnymi menadżerami,..
Layout.png
Powyżej jest kilka stopni hierarchii:

  • całe okno ma BorderLayout
  • u góry jest panel z GridLayout(1,2), w lewej komórce jest panel z FlowLayout z wyrównaniem do lewej, w prawej komórce panel FlowLayout z wyrównaniem do prawej
  • w środku jest JScrollPane
  • na dole jest panel z GridLayout(1,2), w lewej komórce jest panel z FlowLayout() z wyrównaniem do lewej, panel ten zawiera kolejny panel z GridLayout(3,3),...

W GridLayout każdy komponent ma taki sam rozmiar. Ustalając rozmiar jednego komponentu setBounds, ustalasz rozmiar komórki.

0

Właśnie nie chce korzystać z graficznego designera. Moje okienko jakie chce osiągnąć jest podobne do tego:
gg.png
Tutaj aż się prosi o Grid'a ale niestety wszystko ma inne rozmiary. Więc starałem się to napisać tak:
Całość w borderLayout. Tam gdzie logo to w sumie tyle (tylko nie za bardzo wiem jak środkować element, w sumie dodałem sb drugi panel i on mi przesuwa ten właściwy).
Jeśli chodzi o spód to będzie FlowLayout. A co do środka to nie mam pomysłu :(.

Dużo czytałem na temat GridBoxLayout ale wszędzie piszą że jest ciężki w użyciu. Pokazał byś mi przykład w nim?
Czy: FlowLayout, BorderLayout, GridLayout mi wystarczą w przyszłości czy lepiej nauczyć się jakiś innych? (jak tak to jakie)
Mam też pytanie: Na tym screenie w pasku tytułowym znajduje się przycisk "gg". W sumie z ciekawości pytam jak tam dodać taki?

Mógłbyś udostępnić ten przykład? Chciałbym zobaczyć w jaki sposób trzymać porządek w kodzie.
Dzięki za odpowiedź :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1