Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Разметка Компонентов В пределах Контейнера
Как управление Расположением Работает
Домашняя страница > Создание GUI С JFC/Swing > Разметка Компонентов В пределах Контейнера

Как управление Расположением Работает


Отметьте: Эти покрытия урока, пишущий расположение кодируют вручную, который может быть стимулирующим. Если Вы не интересуетесь изучением всех деталей управления расположением, Вы могли бы предпочесть использовать GroupLayout менеджер по расположению объединился с инструментом разработчика, чтобы разметить Ваш GUI. Один такой инструмент разработчика является IDE NetBeans. Иначе, если Вы хотите кодировать вручную и не хотите использовать GroupLayout, тогда GridBagLayout рекомендуется как следующий самый гибкий и мощный менеджер по расположению.

Если Вы интересуетесь использованием JavaFX, чтобы создать Ваш GUI, см. Работу С Разметками в JavaFX.

Вот пример последовательности управления расположением для контейнерного использования LayoutManager2.

  1. Менеджеры по расположению в основном делают две вещи:
    • Вычислите минимальные/привилегированные/максимальные размеры для контейнера.
    • Разметьте дочерние элементы контейнера.

    Менеджеры по расположению делают это основанное на обеспеченных ограничениях, свойства контейнера (такие как вставки) и на детских минимальных/привилегированных/максимальных размерах. Если дочерний элемент является самостоятельно контейнером тогда, его собственная кормушка расположения используется, чтобы получить его минимальные/привилегированные/максимальные размеры и разметить его.

  2. Контейнер может быть допустимым (а именно, isValid() возвращает true), или недопустимый. Для контейнера, чтобы быть допустимыми, дочерние элементы всего контейнера уже должны быть размечены и должны все быть допустимыми также. Container.validate метод может использоваться, чтобы проверить недопустимого контейнера. Этот метод инициировал расположение для контейнера и всех дочерних контейнеров вниз иерархия компонентов и отмечает этот контейнер как допустимый.

  3. После того, как компонент создается, это находится в недопустимом состоянии по умолчанию. Window.pack метод проверяет окна и размечает иерархию компонентов окна впервые.

Конечный результат - то, что, чтобы определить лучший размер для контейнера, система определяет размеры контейнеров у основания иерархии включения. Эти размеры тогда проникают иерархия включения, в конечном счете определяя полный размер контейнера.

Если размер компонента изменяется, например после изменения шрифта, компонент должен быть изменен и перекрашен, вызывая revalidate и repaint методы на том компоненте. Оба revalidate и repaint ориентированы на многопотоковое исполнение — Вы не должны вызвать их от диспетчеризирующего событие потока.

Когда Вы вызываете revalidate на компоненте от запроса отказываются иерархия включения, пока это не встречается с контейнером, таким как область прокрутки или высокоуровневый контейнер, на который не должно влиять изменение размеров компонента. (Это определяется, вызывая контейнер isValidateRoot метод.) Контейнер тогда размечается, который имеет эффект корректировки размера подтвержденного компонента и размера всех компонентов, на которые влияют.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Используя менеджеров по Расположению
Следующая страница: Как Использовать Различных менеджеров по Расположению