Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

JFC: Почему именно так?

Перевод на русский © Виктор Смирнов, 2000
Оригинал статьи опубликован на сайте Javable.com

Java Q&A

Почему нужно добавлять компоненты приложения в контейнер content окна приложения JFrame? Почему нельзя добавлять их непосредственно в окно, как в библиотеке AWT?

Почему? - Потому, что так нужно.

В данном случае ответ действительно вполне исчерпывающий. Тем не менее, имеет смысл обсудить, как в библиотеке Swing реализованы контейнеры верхнего уровня, такие как JFrame. Все контейнеры верхнего уровня имеют единственную компоненту - объект класса JRootPane. Класс JRootPane, в свою очередь, содержит компоненту glassPane и класс JLayeredPane. Далее, класс JLayeredPane содержит меню и контейнер contentPane. Вложенность контейнеров предоставляет логическую структуру размещения компонент.

Требование добавлять компоненты в контейнер contentPane призывает придерживаться описанной структуры. Попытка поступить иначе будет противоречить принципам, заложенным разработчиками библиотека Swing.

Минуточку, но зачем используется такой дизайн?

Размещая компоненты приложения в одном месте (contentPane) вы значительно упрощаете себе жизнь. Такой подход позволяет, в частности, непосредственно использовать панель glassPane и располагать компоненты на разных слоях. Например, если бы вы разместили графическую компоненту над или рядом с glassPane, вы бы не смогли запретить передачу событий этой компоненте или нарисовать что-нибудь сверху так же просто, как с использованием glassPane. Кроме того, вы бы не смогли поместить слой (содержащий, например, выскакивающее меню) над всеми компонентами, так как часть из них может лежать вне контейнера layeredPane.

Следую общей идеологии, вы получаете все предусмотренные преимущества (частью которых вы, быть может, ни когда и не воспользуетесь). Если же вы захотите всех перехитрить, вам придется побеспокоиться о поддержке внешнего дизайна приложения (look and feel), самостоятельно реализовать возможность размещения компонент на разных слоях (уровнях), а так же, для полноты, реализовать функциональность glassPane. На этом пути вам придется переписать значительную часть библиотеки Swing.

Об авторе

Тони Синтес работает старшим консультантом в ObjectWave, специализируясь на телекоммуникациях. Тони работает с Java начиная с 1997 года и является Sun-certified Java 1.1 программистом и Java 2 разработчиком.

Ресурсы

  • Graphic Java 2: Mastering the JFC, Volume 2: Swing, 3rd ed.,David M. Greary (Prentice Hall, 1999) provides a discussion on the design of Swing:
    http://www.objectwave.com/

Reprinted with permission from the March 2000 edition of JavaWorld magazine.
Copyright © ITworld.com, Inc., an IDG Communications company.
View the original article at: http://www.javaworld.com/javaworld/javaqa/ 2000-05/01-qa-0505-jfc_p.html

Содержание | Вперед

 

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...