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

Например, текущий шрифт, которым делаются надписи класса Jlabel, можно получить так:

Font labelFont = UIManager.getFont("Label.font");

Кроме того, статическим методом getDefaults() можно получить ссылку на экземпляр класса UIDefaults, используемый классом UIManager.

Просмотреть все несколько сотен свойств, хранящихся в модели данных UIDefaults, можно так:

UIDefaults defs = UIManager.getDefaults();

Enumeration keys = defs.keys();

Enumeration elem = defs.elements();

while (keys.hasMoreElements() && elem.hasMoreElements())

System.out.println(

keys.nextElement() + ": " + elem.nextElement());

Статический метод

put(Object key, Object value);

меняет только пользовательские установки различных свойств, оставляя установки L&F без изменения. Посмотреть установки L&F можно статическим методом

geLookAndFeelDefaults (), возвращающим экземпляр класса UIDefaults.

Для того чтобы легче переключать вид и поведение приложения, класс UIManager хранит несколько L&F под произвольно данными именами в виде массива объектов вложенного класса UIManager.LookAndFeelInfo. Новый элемент заносится в этот массив статическим методом

installLookAndFeel(String name, String className);

вызывающим конструктор класса UIManager.LookAndFeelInfo, или статическим методом

installLookAndFeel(UIManager.LookAndFeelInfo);

По умолчанию хранятся платформенные L&F, CDE/Motif, Nimbus и Java L&F. Посмотреть имена всех имеющихся в массиве L&F можно так:

UIManager.LookAndFeelInfo[] info = UIManager.getInstalledLookAndFeels(); for (int i = 0; i < info.length; i++)

System.out.println(info[i].getName());

Задание стандартного L&F

Очень легко задать один из стандартных 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.

Листинг 17.1. Внутренние окна со стандартными L&F

import java.awt.*; import javax.swing.*;

public class DiffLAF extends JFrame{

DiffLAF(){

super(" Окно с разными L&F"); setLayout(new FlowLayout());

JInternalFrame ifr1 =

new JInternalFrame(" Oкно Metal", true, true, true, true); ifr1.getContentPane().add(new JLabel(" Это окно Java L&F")); ifr1.setPreferredSize(new Dimension(200, 100)); ifr1.setVisible(true); add(ifr1);

try{

UIManager.setLookAndFeel(

UIManager.getSystemLookAndFeelClassName());

JInternalFrame ifr2 =

new JInternalFrame(" Окно Windows", true, true, true, true); i fr2.getContentPane().add(

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

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

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.

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

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