1.4. FlowLayout va BorderLayout, Gridlayout menejerlari
Eng oson joylashtirish menejeri — FlowLayout. Panelning o'lchamiga qarab, panelga qo'shilgan tarkibiy qismlarni qat'iy ravishda navbat bilan, satrma-qator joylashtiradi. Keyingi element joriy qatorga to'g'ri kelmasa, u keyingi qatorga o'tkaziladi. Buni misol bilan kuzatish yaxshidir. Simplewindow sinf konstruktorini quyidagicha o'zgartiring:
SimpleWindow(){super("Пробное окно");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel = new JPanel();panel.setLayout(new FlowLayout());
panel.add(new JButton("Tugma"));panel.add(new JButton("+"));
panel.add(new JButton("-"));
panel.add(new JButton("Кнопка с длинной надписью"));
setContentPane(panel);setSize(250, 100);}
3-rasm. Joylashuv menejerlari java paketida tasvirlangan.awt
Dasturni ishga tushirgandan so'ng paydo bo'ladigan oynaning xatti-harakatlarini kuzatib boring. Undagi to'rtta tugma matn muharriridagi so'zlar kabi joylashtirilgan (markazlashtirilganda). Dastur ishlayotganda oynaning o'lchamini o'zgartirsangiz, effekt yanada sezilarli bo'ladi.
Misol matnini tahlil qilaylik. FlowLayout-ning yangi joylashuv menejeri parametrlarsiz konstruktor tomonidan yaratilgan. E'tibor bering, dastur oraliq o'zgaruvchidan foydalanmaydi. Ya'ni, ikkita buyruq o'rniga:
FlowLayout newLayout = new FlowLayout();panel.setLayout(newLayout);
Biz bittasini ishlatamiz:
panel.setLayout(new FlowLayout());
Kelajakda biz yaratilayotgan ob'ektga murojaat qilishimiz shart bo'lmagan hollarda bu juda maqbuldir (bu misol uchun to'g'ri). Biz joylashuv menejerini yaratamiz, darhol uni panelga bog'laymiz — va shu bilan. Endi panel va menejer o'zlari bir-birlari bilan umumiy til topadilar.
panel va uning menejeri o'rtasidagi munosabatlar haqida
Panel menejeriga havolani saqlaydi va har safar elementlarning koordinatalarini hisoblash kerak bo'lganda unga o'zi kiradi (bu ularni qo'shish, o'chirish, o'lchamlarini o'zgartirish, shuningdek oynaning o'lchamlarini o'zgartirish paytida sodir bo'ladi). Aslida, biz ushbu menejerni JPanel sinfining getLayout() usuli bilan olishimiz mumkin, ammo umuman kerak emas.
Aytgancha, JPanel sinfida parametrlarsiz konstruktordan tashqari, joylashuv menejeri parametr sifatida o'rnatiladigan konstruktor mavjud. Shuning uchun buyruqlar o'rniga
Do'stlaringiz bilan baham: |