Page 130 - 4836
P. 130
Це цілком припустимо в тих випадках, коли надалі нам
не буде потрібно звертатися до створюваного об'єкта (що
справедливо для даного прикладу). Ми створюємо менеджер
розташування, тут же прив'язуємо його до панелі - і все. Тепер
панель і менеджер самі знайдуть один з одним спільну мову.
Про взаємини панелі і її менеджера
Панель зберігає посилання на свого менеджера і сама
звертається до нього кожен раз , коли потрібно розрахувати
координати елементів (це відбувається при їх додаванні,
видаленні, зміні розмірів, а також при зміні розмірів вікна). У
принципі, ми можемо навіть отримати цього менеджера
методом getLayout( ) класу JPanel, але, як правило, в цьому
взагалі немає необхідності.
До речі, клас JPanel крім конструктора без параметрів,
має конструктор, в якому як параметр задається менеджер
розташування . Тому замість команд
JPanel panel = new JPanel ();
panel.setLayout (new FlowLayout ( )) ;
можна написати:
JPanel panel = new JPanel (new FlowLayout ( )) ;
Більш того, за замовчуванням знову створювана панель
має саме менеджер розташування FlowLayout. Тому в
наведеному вище прикладі ми установлюємо менеджера
скоріше для наочності, взагалі ж, робити це не обов'язково.
Точно так ми додаємо на панель нові кнопки. Ми ніде
більше не намагаємося звернутися до цих кнопок у програмі,
тому заводити під них змінні немає сенсу.
Метод setContentPane (JPanel panel) дозволяє замінити
панель вмісту вікна.
Менеджер граничного розміщення BorderLayout
Менеджер розміщення BorderLayout розділяє панель на
п'ять областей: центральну, верхню, нижню, праву і ліву. У
128