Înainte de a utiliza componentele de comandă (de exemplu, butoanele), ele trebuie plasate pe formular în ordinea dorită. În loc de plasare manuală, managerii de destinații de plasare sunt utilizați pentru a defini modul în care panoul utilizează pentru a specifica ordinea de plasare a elementului de control în formular. Managerii de plasare controlează modul de poziționare a componentelor adăugate la ferestre, precum și ordonarea acestora. Dacă utilizatorul redimensionează fereastra, managerul de alocare rearanjează componentele din noua zonă astfel încât acestea să rămână vizibile și, în același timp, să își mențină pozițiile relativ unele față de altele.
Managerul de implementare este una dintre clasele FlowLayout. BorderLayout. GridLayout. CardLayout. BoxLayout. implementarea interfeței LayoutManager. stabilirea plasamentului.
Clasa FlowLayout este un manager de asamblare a debitului. În acest caz, componentele sunt plasate din colțul din stânga sus al ferestrei, de la stânga la dreapta și de sus în jos, la fel ca textul simplu. Acest manager este utilizat în mod prestabilit atunci când se adaugă componente la applet-uri. Când se utilizează biblioteca AWT, managerul FlowLayout este o clasă declarată după cum urmează:
clasa publică FlowLayout extinde Object
implementează LayoutManager, Serializabil<>
Următorul exemplu demonstrează capacitatea de a raționaliza structura diferitelor controale.
/ * exemplul nr. 1. Layout după centru: FlowLayoutEx.java * /
clasa publica FlowLayoutEx extinde JApplet
componentă privată c [] = Componenta nouă [9];
// manager de instalare
setFiere (Color.getHSBColor (1f, 1f, 1f));
pentru (int i = 0; i
c [i + 3] = noul JLabel (msg [i]);
c [i + 6] = noul JTextField (txt [i]);
Metoda supraîncărcare adăugați (Component ob). definită în clasa java.awt.Container (subclasa Component), adaugă componente JButton. JLabel. JTextField la fereastră și le atrage de fiecare dată când fereastra este afișată pe ecran.
Metoda setLayout (LayoutManager mgr) instalează managerul de layout pentru acest container. Rezultatele aplicației sunt prezentate în figură.
Fig. 13.1. Plasarea componentelor FlowLayout
Managerul GridLayout împarte formularul într-un număr specificat de rânduri și coloane. În contrast, dispunerea BoxLayout plasează un număr de componente vertical sau orizontal. Modificarea dimensiunii formei nu afectează modul în care sunt poziționate componentele.
/ * exemplul # 2. aspect în formă de tabel: GridLayoutEx.java * /
public class GridLayoutEx extinde JApplet
componentă privată b [] = Componenta nouă [7];
pentru (int i = 0; i adăugați ((b [i] = nou JButton ("(" + i + ")"))); Fig. 13.2. Localizarea componentelor GridLayout Managerul BorderLayout vă permite să poziționați elemente și grupuri de ele în zone cu dimensiuni fixe marginite pe laturile cadrului, care sunt indicate de parametrii laturilor luminii: NORTH. SOUTH. EAST. WEST. Restul spațiului este indicat de CENTER. / * exemplu # 3. aspectul fix pe suprafață: importați butonul javax.swing.JToggleButton; // "scufundați" public class BorderGridLayoutDemo extinde JFrame
Container c = getContentPane (); c.add (noul JToggleButton ("- 1"), BorderLayout.WEST); c.add (noul JToggleButton ("- 2-"), BorderLayout.SOUTH); c.add (noul JToggleButton ("- 3"), BorderLayout.EAST); JPanel jPanel = nou JPanel (); jPanel.setLayout (noul GridLayout (2, 4)); jPanel.add (noul JButton ("" + i)); publicstaticvoid principal (String [] args)
fr.setTitle ("Border Exemplu de machete de grilă ");
Fig. 13.3. Plasarea componentelor BorderLayout și GridLayout
Layout-ul BoxLayout vă permite să grupați elemente în sub-cadre în rânduri și coloane. Caracteristica Box vă permite să plasați componentele într-un cadru orientat orizontal sau vertical.
/ * exemplul # 4. aspect în grupuri cu orientare: BoxLayoutDemo.java * /