русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Компонентная модель Java Beans


Дата добавления: 2015-07-09; просмотров: 844; Нарушение авторских прав


Компоненты многократного использования объединены в языке Java общим названием Beans. Идеологически технология Beans близка компонентной технологии Borland Delphi. Пожалуй, наибольшее отличие этих технологий касается механизма обработки событий. Кратко отметим основные положения компонентной технологии Java Beans.

Назначение – создание специализированных классов, которые удовлетворяют следующим условиям:

· класс решает некоторую изолированную задачу;

· класс можно встраивать в визуальные инструментальные пакеты;

· класс можно многократно использовать с автоматической генерацией части программного кода.

Для описания компонентных классов разработаны простые правила, с помощью которых определяются свойства (в том числе и видимые разработчиком приложения), методы и выполняется обработка событий. Что касается свойств, то общее правило их объявления и использования аналогично свойствам компонентной модели Delphi: свойство – это внутреннее закрытое поле, доступ к которому реализуется только через обращение к соответствующим методам доступа. При этом методы доступа обязательно именуются с помощью префиксов set и get, за которыми идет имя свойства: setName(параметр) и getName( ). Как обычно, set-метод принимает один входной параметр типа внутреннего поля, а get-метод возвращает значение поля. Фрагмент описания компонентного класса:

class MyBeansClass

{ private int Field1; // закрытые поля

private String Field2;

public int getField1( ) {return Field1;} // методы доступа

publicvoid setField1(int aField1) { Field1 = aField1;}

public String getField2( ) {return Field2;} // методы доступа

publicvoid setField2(String aField2) { Field2 = aField2;};

publicvoid SomeMethod(параметры) { реализация }; // просто метод

};

Отдельно надо хотя бы кратко остановиться на механизме обработки событий. Поскольку язык Java не поддерживает указатели на функции, разработчикам языка пришлось использовать другие подходы. Как и все остальное в языке Java, обработка событий выполняется на объектном уровне с помощью специальных классов, в том числе и интерфейсных (это еще раз подтверждает значение интерфейсов для технологии Java!).



Любое событие генерируется объектом-источником при изменении его внутреннего состояния. Все основные события классифицированы и им поставлены в соответствие некоторые классы. Родоначальником иерархии событий является класс EventObject, от которого порождены следующие основные классы событий:

· ActionEvent – обработка нажатий кнопок или выбор пунктов меню.

· ComponentEvent – общие события при манипуляциях с компонентом.

· ContainerEvent – события при добавлении/удалении компонента из контейнера.

· KeyEvent – события ввода с клавиатуры.

· MouseEvent – «мышиные» события.

· WindowEvent –оконные события.

· ItemEvent – выбор элементов в списках.

· TextEvent – любые изменения в текстовых полях.

Обработку того или иного события выполняет специальный объект-слушатель(listener). Этот объект является экземпляром класса, реализующего некоторый интерфейс, характерный для данного типа события. Для каждого класса событий существует свой интерфейс слушателя, определяющий один или несколько специфических методов обработки данного события. В качестве примера приведем несколько наиболее важных интерфейсов слушателя и определяемых ими методов:

· KeyListener: keyPressed, keyReleased, keyTyped

· MouseListener: mouseClicked, mouseEntered, mouseExited, mousePressed, mouseReleased

· MouseMotionListener: mouseMoved, mouseDragged

· ItemListener: itemStateChanged

· WindowListener: windowOpened, windowClosing, windowActivated

· ActionListener: actionPerformed

Для обработки события надо создать объект-слушатель и зарегистрировать его в компоненте, который генерирует данное событие. Для регистрации слушателей используются специальные методы add***Listener() и remove***Listener(), где звездочки *** заменяют тип события. Например: addActionListener, addKeyListener, addMouseListener, addItemListener и т.д. Компонент может зарегистрировать несколько слушателей-обработчиков разных событий. Например, если ранее описанный класс MyBeansClass должен обрабатывать события от мыши и клавиатуры, он должен зарегистрировать соответствующих слушателей, для чего в описание класса надо добавить следующие методы:

publicvoid addKeyListener(KeyListener kl) { . . . };

publicvoid removeKeyListener(KeyListener kl) { . . . };

publicvoid addMouseListener(MouseListener ml) { . . . };

publicvoid removeMouseListener(MouseListener ml) { . . . };

Информация о всех свойствах компонентного класса и зарегистрированных событиях сохраняется в файле и с помощью механизма отражения доступна в процессе визуального создания программы. Здесь также используется такое важное свойство Bean-компонентов, как сохраняемость (persistence), т.е. способность компонентов записывать себя во внешние файлы с восстановлением своей структуры в более позднее время. Это свойство обеспечивается механизмом сериализации, который является стандартным для всех объектов Java, реализующих интерфейс Serializable. Этот механизм превращает объект в поток байтов, помещаемый во внешний файл. Очень важно, что механизм сериализации позволяет сохранять и восстанавливать объектную структуру любой сложности, т.е. со всеми внутренними объектными свойствами.

 



<== предыдущая лекция | следующая лекция ==>
Компонентная модель Borland Delphi | Компонентная модель платформы .NET


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.