Читаем Java 7 полностью

<p><strong>Изменение</strong></p><p><strong>внешнего вида компонента</strong></p>

Одна из самых замечательных особенностей библиотеки Swing — возможность изменять внешний вид и поведение графических элементов приложения.

Вид (look) каждого графического компонента задают его форма, тип и цвет рамки, цвет фона, цвет, тип и размер шрифта, форма курсора мыши. Поведение компонента (feel) определяют та или иная реакция на действия мыши, набор командных клавиш, способ перемещения окон и т. д. Набор таких свойств всех компонентов приложения определяет его вид и поведение, Look and Feel, сокращенно — L&F. Всего набирается несколько сотен свойств, определяющих L&F приложения.

Самые общие методы получения и задания сведений о виде и поведении приложения Swing собраны в абстрактном классе LookAndFeel пакета javax.swing. При создании какого-то конкретного стиля L&F надо расширить этот класс, заполнив его характеристиками конкретного L&F.

В библиотеке Swing собраны все необходимые сведения о стандартном виде и поведении графического приложения на нескольких наиболее распространенных графических платформах. Часть этих сведений, общая для всех платформ, образует набор системных сведений (system defaults). Системные сведения собраны в абстрактном классе

BasicLookAndFeel, расширяющем класс LookAndFeel. Класс BasicLookAndFeel и его вспомогательные классы составляют пакет javax.swing.plaf.basic.

Конкретные сведения, специфичные для трех наиболее распространенных платформ, собраны в трех классах, расширяющих класс BasicLookAndFeel:

□ MotifLookAndFeel — вид и поведение, характерные для графической оболочки CDE (Common Desktop Environment), основанной на библиотеке графических функций Motif. Эта графическая оболочка применяется как "родная" в операционной системе Solaris.

В документации этот вид и поведение называются CDE/Motif;

□ WindowsLookAndFeel — вид и поведение Win32, характерные для платформы MS Windows;

□ MacLookAndFeel — вид и поведение, принятое на платформе Apple Macintosh.

Вид и поведение CDE/Motif можно реализовать на любой платформе, вид и поведение Windows и Macintosh, из-за лицензионных ограничений, доступны лишь на соответствующей платформе.

Технология Java определяет и свой собственный, независимый от платформы, Java Look and Feel, сокращенно — Java L&F, еще короче — JLF. Он неформально называется "Metal" за схожесть этого L&F с гравировкой по металлу. Такой стиль в русской технической литературе называется "приборным" стилем за сходство с оформлением алюминиевых панелей научных приборов. Впрочем, JLF позволяет создать различные темы оформления и получить стиль, совсем не похожий на приборную панель. Несколько тем реализованы в стандартной поставке Swing. Их отличия можно посмотреть в демо-программе SwingSet2. По умолчанию начиная с пятой версии Java SE установлена тема "Ocean", в прежних версиях была тема "Steel". Тему "Steel" можно сделать темой по умолчанию, установив системное свойство swing.metalTheme=steel.

Приложение, работающее в стиле JLF, будет выглядеть одинаково на всех платформах. Именно этот стиль использован во всех примерах, приведенных в предыдущих главах.

Сведения о виде и поведении Java L&F собраны в четвертом наследнике класса

BasicLookAndFeel — классе MetalLookAndFeel.

Дизайнерская мысль не стоит на месте, и на смену Java L&F идет Nimbus L&F, впервые появившийся в JDK 1.6.0_10. Оформление Nimbus создается средствами Java 2D и использует богатейшие возможности этой библиотеки, некоторые из них мы рассмотрели в главе 9. В частности, для рисования применяется векторная графика, что позволяет использовать Nimbus при любом разрешении экрана.

Вид и поведение Nimbus создаются классом NimbusLookAndFeel и другими классами из пакета j avax.swing.plaf.nimbus.

Сведения, собранные в каждом из этих классов, образуют платформенные сведения (look and feel defaults).

Кроме системных и платформенных сведений есть еще пользовательские сведения (user defaults), задаваемые приложением при его запуске или во время работы.

Наивысший приоритет имеют пользовательские сведения. Если они не заданы, то исполняющая система Swing отыскивает платформенные сведения. Не найдя их, она берет нужные значения из системных сведений.

Итак, на каждой платформе можно установить четыре стандартных L&F: "родной" для данной платформы, CDE/Motif, Nimbus и Java L&F. Они выглядят как на рис. 17.1.

Окно верхнего уровня класса JFrame или JDialog, зарегистрированное в оконном менеджере графической подсистемы операционной системы, оформляется по правилам этого оконного менеджера.

Его внешний вид можно изменить только специальными ухищрениями, а именно статическими методами

JFrame.setDefaultLookAndFeelDecorated(true);

JDialog.setDefaultLookAndFeelDecorated(true);

JFrame newLAFWin = new JFrame();

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных