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

Очень легко задать один из стандартных PL&F, воспользовавшись одним из статических методов setLookAndFeel(LookAndFeel) или setLookAndFeel(String) класса UIManager. Аргумент второго из этих методов — строка, содержащая полное имя нужного класса XxxLoo kAnd Feel со всеми подпакетами. Например, строка "javax.swing.plaf.metal. MetalLookAndFeel" задает имя класса, определяющего Java L&F. Поскольку это имя может измениться в следующих версиях Java SE, то для получения имени класса Java L&F лучше пользоваться статическим методом getCrossPlatformLookAndFeelClassName() класса UIManager. Впрочем, Java L&F устанавливается по умолчанию, как можно видеть из многочисленных примеров, приведенных в предыдущих главах. Еще один статический метод getSystemLookAndFeelClassName () класса UIManager возвращает полное имя класса, определяющего стандартный L&F для данной платформы. Обычный способ задания платформенного L&F выглядит так:

public static void main(String[] args){ try{

UIManager.setLookAndFeel(

UIManager.getSystemLookAndFeelClassName());

}catch(Exception e){}

new SomeSwingApplication();

}

Обрабатывать исключение здесь не нужно, потому что в ответ на его выбрасывание устанавливается Java L&F.

Для получения строки с полным именем класса CDE/Motif в классе UIManager никакого метода нет, ее надо задавать прямо:

UIManager.setLookAndFeel(

"com.sun.j ava.swing.plaf.motif.MotifLookAndFeel");

В листинге 17.1 приведена программа, создавшая рис. 17.1. В ней каждое внутреннее окно строится по правилам одного из стандартных L&F.

<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 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.

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

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