Page 142 - 4836
P. 142
обмежений, а переважаючий залежить від напису на кнопці
(обчислюється як розмір тексту напису плюс розміри полів).
Менеджер FlowLayout завжди встановлює переважаючі
розміри елементів. Менеджер BorderLayout встановлює кращу
ширину правого і лівого, а також кращу висоту верхнього і
нижнього. Решта розміри підганяються під доступний простір
панелі. Менеджер GridLayout намагається підігнати розміри
всіх елементів під розмір комірок. Менеджер BoxLayout
орієнтується на переважні розміри.
Коли елемент намагається зайняти весь доступний
йому простір, він «враховує» побажання не робитися меншим
від своїх мінімальних або більшим максимальних.
Всіма трьома розмірами можна керувати за допомогою
відповідним методів set:
setMinimumSize (Dimension size),
setPreferredSize (Dimension size),
setMaximumSize (Dimension size).
Найчастіше використовується простий прийом, коли
елементу «не рекомендується» збільшуватися або
зменшуватися щодо своїх переважних розмірів. Це легко
зробити командою:
element.setMinimumSize (element.getPreferredSize ( ));
«Упаковка» вікна
У розглянутих вище прикладах ми явно задавали
розмір вікна методом setSize( ). Але коли використовується
який-небудь менеджер розташування, що розставляє елементи
і змінює їх розміри за власними правилами , важко сказати
заздалегідь, які розміри вікна будуть самими підходящими.
Безумовно, найбільш кращим буде варіант, за якого всі
елементи вікна мають переважні розміри або близькі до них .
Якщо замість явної вказівки розмірів вікна, викликати
метод pack( ), вони будуть підібрані оптимальним чином з
140