Менеджер GridBagLayout
Как правило, объект класса GridBagConstraints создается конструктором по умолчанию, затем значения нужных полей меняются простым присваиванием новых значений, например:
GridBagConstraints gbc = new GridBagConstraints(); gbc.weightx = 1.0; gbc.gridwidth = GridBagConstraints.REMAINDER; gbc.gridheight =2;
После создания объекта gbc класса GridBagConstraints менеджеру размещения указывается, что при помещении компонента сотр в контейнер следует применять правила, занесенные в объект gbc. Для этого применяется метод:
add(Component comp, GridBagConstraints gbc)
Итак, схема применения менеджера GridBagLayout такова:
GridBagLayout gbl = new GridBagLayout(); // Создаем менеджер setLayout(gbl); // Устанавливаем его в контейнер // Задаем правила размещения по умолчанию GridBagConstraints с = new GridBagConstraints(); Button b2 = new Button(); // Создаем компонент c.gridwidth =2; // Меняем правила размещения add(b1, с); // Помещаем компонент b2 в контейнер // по указанным правилам размещения с Button b2 = new Button(); // Создаем следующий компонент c.gridwidth = 1; // Меняем правила для его размещения add(b2, с); // Помещаем в контейнер и т.д.
В документации к классу GridBagLayout приведен хороший пример использования этого менеджера размещения.
Заключение
Все менеджеры размещения написаны полностью на языке Java, в состав SUN J2SDK входят их исходные тексты. Если вы решили написать свой менеджер размещения, реализовав интерфейс LayoutManager или LayoutManager2, то посмотрите эти исходные тексты.