Będziemy chcieli się bawić z layout managers kontrolować pozycjonowanie i wymiarowanie elementów sterujących w JPanel
. Kierownicy układów są odpowiedzialni za umieszczanie kontrolek, określanie, gdzie się znajdują, jak duże są, ile miejsca między nimi, co się dzieje, gdy zmieniasz rozmiar okna, itp.
Istnieje wiele menedżerów układów, z których każdy pozwala do kontroli układu na różne sposoby. Domyślnym menedżerem układu jest FlowLayout
, który, jak widzieliśmy, po prostu umieszcza komponenty obok siebie od lewej do prawej. To najprostsze. Kilka innych menedżerów wspólny układ to:
GridLayout
- układa komponenty w prostokątnej siatce z wierszy równa wielkości i kolumn
BorderLayout
- ma jeden główny składnik w centrum i do czterech otaczających elementów powyżej, poniżej, po lewej i po prawej.
- - Big Bertha wszystkich wbudowanych menedżerów układów, jest najbardziej elastyczny, ale także najbardziej skomplikowany w użyciu.
Można na przykład użyć BoxLayout do rozmieszczenia etykiet.
BoxLayout
albo układa swoje komponenty jeden na drugim lub umieszcza je w rzędzie - do wyboru. Możesz myśleć o tym jako o wersji FlowLayout
, ale o większej funkcjonalności. Oto zdjęcie z aplikacji, która demonstruje użycie BoxLayout
aby wyświetlić wyśrodkowany kolumnę elementów:
BoxLayout screenshot http://java.sun.com/docs/books/tutorial/figures/uiswing/layout/BoxLayoutDemo.png
Przykładem kodu przy użyciu BoxLayout
byłoby:
JPanel pMeasure = new JPanel();
....
JLabel economy = new JLabel("Economy");
JLabel regularity = new JLabel("Regularity");
pMeasure.setLayout(new BoxLayout(pMeasure, BoxLayout.Y_AXIS));
pMeasure.add(economy);
pMeasure.add(regularity);
...
Możliwy duplikat [dodaj elementy sterujące w pionie zamiast w poziomie za pomocą układu przepływu] (http://stackoverflow.com/questions/13510641/add-controls-vertically-instead-of-horizontally-using-flow-layout) – Abhijeet