Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2" -> 149

Технологии профаммирования на Java 2 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 — М.: Бином-Пресс, 2003. — 560 c.
Скачать (прямая ссылка): tehprogrammjava22003.pdf
Предыдущая << 1 .. 143 144 145 146 147 148 < 149 > 150 151 152 153 154 155 .. 250 >> Следующая

Класс PropertyChangeSupport предоставляется для удобства регистрации слушателя и уведомления для событий, связанных с изменением значений свойств.
Напомним, что вам следует сформировать класс SliderFieldPanel как Веап-ком-понент, чтобы загрузить его в интегрированную среду разработки. Заархивируйте класс в JAR-файл. Файл описания для этого примера представлен на рис. 6.42. В строке 2 задается имя файла класса (com\deitel\advjhtpl\beans\SliderFieldPa-nel.class), который представляет Bean-компонент. В строке 3 задается, что класс, указанный в строке 1, является компонентом JavaBean. В этом файле нет заголовка Main-Class, поскольку SliderFieldPanel не является приложением. Наконец, установите компонент SliderFieldPanel.jar в интегрированной среде разработке.
Чтобы продемонстрировать функциональные возможности связанного свойства, поместите Bean-компонент SliderFieldPanel и Bean-компонент LogoAnimator2 в окно JFrame. Выберите Bean-компонент SliderFieldPanel (рис. 6.43), установите для свойства maximum Value значение 1000, а для свойства currentValue — значение 50 (скорость анимации по умолчанию для LogoAnimator2). В Forte выберите Connection Mode из Component Palette. Щелкните на SliderFieldPanel; затем щелкните на LogoAnimator2. В углах каждого из компонентов появятся красные квадратики, откроется окно мастера Connection Wizard.
На первом шаге мастера Connection Wizard выберите propertyChange в качестве события для исходного компонента и щелкните на кнопке Next (рис. 6.44). Выберите свойство animationDelay объекта LogoAnimator2 на шаге 2 мастера Connection Wizard (рис. 6.45) и щелкните на кнопке Next. Наконец, выберите свойство currentValue объекта SliderFieldPanel на шаге 3 (рис. 6.46) и щелкните на кнопке Finish. Свойство animationDelay теперь связано со свойством currentValue объекта SliderFieldPanel. Выполните класс JFrame, чтобы увидеть в действии связь между компонентами LogoAnimator2 и SliderFieldPanel (рис. 6.47).
Попробуйте переместить ползунок, чтобы изменить скорость анимации. Передвиньте ползунок влево для увеличения скорости анимации; переместите бегунок
вправо для уменьшения скорости анимации
1
Java-Bean: True
Рис. 6.42. Файл описания для компонента JavaBean SliderFieldPanel
Компонентная модель JavaBeans
345
Рис. 6.43. Изменение свойств currentValue и maximumValue
Рис. 6.44. Выбор события propertyChange Рис. 6.45. Выбор свойства
animationDelay компонента LogoAnimator2
Рис. 6.46. Выбор связанного свойства currentValue
346 Глава 6
Рис. 6.47. Окно JFrame с компонентами LogoAnimator2 и SliderFieldPanel
6.7. Индексированные свойства и нестандартные события
Хотя стандартные свойства, связанные свойства и стандартные события Java предоставляют достаточно богатые функциональные возможности, в компонентах JavaBeans можно определять другие типы свойств и событий. Индексированное свойство похоже на стандартное свойство за исключением того, что индексированное свойство представляет собой массив примитивных значений или объектов. Индексированное свойство определяют методы get и set. Методы get имеют вид
public ТкаДанных[ ] деЬИыяСвойства ( ) public ТшіДатагх дъХЯняСвойства (int индекс)
Первый метод get возвращает весь массив для индексированного свойства. Второй метод get возвращает элемент массива с индексом, указанным в качестве параметра метода get. Методы set имеют вид
public void веЬИняСвойства (ТипДанных[ ] данные)
public void веЬИ&яСвойства (int индекс, ТжоДашшх данные)
Первый метод set устанавливает для индексированного свойства значение, задаваемое параметром. Второй метод set устанавливает для элемента индексированного свойства с указанным индексом значение, задаваемое вторым параметром.
®Общая методическая рекомендация 6.12_ Индексированное свойство действует подобно обычному свойству и фигурирует в таблице свойств, как и обычное свойство.
Компонент JavaBean может генерировать события, определяемые программистом. Событие, определенное программистом, или нестандартное событие, предоставляет функциональные возможности, которые не предоставляют стандартные события Java. Класс событий расширяет класс java.util.EventObject, а интерфейс слушателя расширяет интерфейс java.util.EventListener.
Наш следующий пример демонстрирует использование индексированного свойства и нестандартного (определяемого программистом) события. В примере мы создадим компонент ColorSliderPanel, который позволяет пользователю выбирать значения для красной, зеленой и синей составляющих цвета. Компонент ColorSliderPanel содержит эти три целочисленные значения в индексированном свойстве и использует их для создания объектов Color. Этот нестандартный компонент пользовательского интерфейса также генерирует нестандартные события Color-Event, чтобы уведомлять зарегистрированных слушателей об изменении цвета пользователем.
Мы начинаем с определения класса EventObject и интерфейса EventListener для нестандартного события ColorEvent. На рис. 6.48 представлен класс Color-Event, а на рис. 6.49 представлен интерфейс ColorListener. Класс ColorEvent представляет собой нестандартное событие, которое расширяет класс EventObject. Параметр color в конструкторе (строки 15-19) представляет значение свойства color
Предыдущая << 1 .. 143 144 145 146 147 148 < 149 > 150 151 152 153 154 155 .. 250 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100