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

Класс LineBorder определяет одноцветную рамку заданной толщины, одинаковой на всех сторонах рамки. Она показана на рис. 16.1, сверху справа. Рамка заданного цвета толщиной в один пиксел создается конструктором LineBorder(Color). Конструктор LineBorder(Color, int) определяет вторым аргументом толщину линий. Конструктор LineBorder(Color, int, boolean), если третий аргумент равен true, создает рамку с закругленными краями.

Два статических метода, createBlackLineBorder() и createGrayLineBorder(), создают рамку с черными и серыми краями толщиной в один пиксел.

В классе BorderFactory есть два статических метода, аналогичные конструкторам класса

LineBorder: метод createLineBorder(Color) и метод createLineBorder(Color, int).

Объемная рамка BevelBorder

Рамка класса BevelBorder состоит из двух линий: светлой и темной. Если светлая линия расположена сверху и слева, а темная справа и снизу, то создается впечатление падения света сверху слева и компонент выглядит выпуклым. Это тип raised, он показан на рис. 16.1 во второй строке. Если же поменять местами темные и светлые линии, то компонент выглядит вдавленным в поверхность контейнера. Это тип LOWERED, на рис. 16.1 он показан в третьей строке. Именно так создается кнопка JButton.

Конструктор BevelBorder (int type) рисует рамку заданного типа type со светлыми линиями светлее фона контейнера и темными линиями темнее фона контейнера. Точно такие же рамки создаются статическими методами

createBevelBorder(int type); createRaisedBevelBorder(); createLoweredBevelBorder();

класса BorderFactory.

Конструктор

BevelBorder(int type, Color highlight, Color shadow);

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

createBevelBorder(int type, Color highlight, Color shadow);

класса BorderFactory создают рамку с заданным светлым highlight и темным shadow цветом.

Объемная рамка может состоять из двойных линий разных цветов. Конструктор

BevelBorder(int type, Color highlightOuter, Color highlightInner,

Color shadowOuter, Color shadowInner);

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

createBevelBorder(int type, Color highlightOuter, Color highlightInner,

Color shadowOuter, Color shadowInner);

создают объемную двухцветную рамку. Внутренние линии имеют цвета highlightInner и shadowInner, а внешние — цвета highlightOuter и shadowOuter.

Закругленная объемная рамка SoftBevelBorder

Класс SoftBevelBorder расширяет класс BevelBorder, создавая рамки со слегка закругленными, смягченными краями. Такие рамки создаются тремя конструкторами, аналогичными конструкторам класса BevelBorder:

SoftBevelBorder(int type);

SoftBevelBorder(int type, Color highlight, Color shadow);

SoftBevelBorder(int type, Color highlightOuter, Color highlightInner,

Color shadowOuter, Color shadowInner);

Врезанная рамка EtchedBorder

Рамка класса EtchedBorder похожа на объемную рамку, но имеет такие тонкие границы, что компонент с этой рамкой выглядит врезанным в контейнер, чуть-чуть выступая, если задана константа raised, или чуть-чуть вдавливаясь, если задана константа lowered. Такая рамка показана на рис. 16.1 в нижней строке справа. Она характерна для "приборного" стиля Java L&F, ранее называвшегося "Metal".

Стандартная врезанная рамка с цветами чуть светлее и чуть темнее цвета фона контейнера создается конструктором по умолчанию EtchedBorder () или статическим методом

createEtchedBorder() класса BorderFactory.

Тип рамки raised или lowered задается конструктором EtchedBorder (int) или статическим методом createEtchedBorder (int).

Цвета чуть выпуклой кнопки определяются конструктором

EtchedBorder(Color highlight, Color shadow);

или статическим методом

createEtchedBorder(Color highlight, Color shadow);

Наконец, можно задать и тип, и цвета конструктором

EtchedBorder(int type, Color highlight, Color shadow);

или статическим методом

createEtchedBorder(int type, Color highlight, Color shadow);

Рамка с изображением MatteBorder

Рамка класса MatteBorder может состоять из повторяющегося изображения, как показано на рис. 16.2, сверху, или из линий разной толщины, но одного и того же цвета, как показано на том же рисунке внизу.

Рамка с изображением создается конструктором MatteBorder(icon). При этом ширина рамки определяется величиной изображения.

Ширину рамки c изображением или цветом можно определить конструкторами

MatteBorder(Insets, Icon);

MatteBorder(Insets, Color);

MatteBorder(int top, int left, int bottom, int right, Icon);

MatteBorder(int top, int left, int bottom, int right, Color);

или статическими методами

createMatteBorder(int top, int left, int bottom, int right, Icon); createMatteBorder(int top, int left, int bottom, int right, Color);

класса BorderFactory.

Рамки этого типа очень просты в использовании, но если они содержат изображения, то следует тщательно подбирать размеры рамки. Листинг 16.2 содержит программу, создавшую рис. 16.2.

Рис. 16.2. Рамка с изображениями и рамка с линиями разной толщины
Перейти на страницу:

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

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.

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

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