Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





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

Поскольку Delphi является вторым поколением визуальных средств программирования, то в нем создавать компоненты стало намного проще. Что же касается Java, то Bean ("зерна кофе" (beans) — основные компоненты, из которых строится программа) — это не что иное, как класс. Вам нет необходимости разрабатывать дополнительный код или использовать специальные языковые расширения, чтобы выполнить что-то в виде Bean (Боба).

Единственная вещь, которую вы должны сделать, — немного изменить способ присвоения имен вашим методам. Этот способ именования должен быть понятен средству разработки прикладных программ (RAD-системе), чтобы легко можно было уже по имени определять, что это — свойство, событие или вызываемый на выполнение метод.

 

В документации по Java соглашение об именах ошибочно именуется "design pattern", хотя это вовсе никакие ни шаблоны для разработки, а просто соглашение об именах и больше ничего.

При проектировании компонентов Bean, обычно принимается следующее:

1.         Для свойства с именем ххх обычно создаются два метода: getXxx( ) и setxxx ( ). По этим методам можно установить или получить свойства объекта.

2.         Для логического выбора используется нечто подобное, но с именем "is" вместо "get."

3.         Для событий используется ключевое слово "listener", например:
addFooBarListener(FooBarListener) или removeFooBarListener(FooBarListener), чтобы обрабатывать событие FooBarEvent. Большинство событий и встроенных обработчиков, как правило, устраивают разработчиков, но не возбраняется попробовать написать свой собственный listener для обработки какого-нибудь специфического события.

 

Попробуем написать свой собственный компонент Bean.
За основу возьмем стандартный класс Java, который задает некий прямоугольник, и переопределим некоторые его свойства.

Код на Java для simpleBean будет простейший:

import java.awt.*;
import java.io.Serializable;
public class SimpleBean extends Canvas
implements Serializable
{
//Constructor sets inherited properties public
SimpleBean( )
{
 setSize(60, 40) ;
setBackground(Color.red) ;
}
}

 

Последовательность шагов, которую нам надо выполнить для создания полноценного компонента Bean, будет такая:

1. Компиляция разработанного кода

javac SimpleBean.java

В результате выполнения этого оператора образуется файл SimpleBean.class.

2.         Подготовка манифест-файла.

Дело в том, что при пакетировании готового Bean в jar-файл с использованием стандартного Java-архиватора jar требуется включить в архив специальный текстовый файл, называемый манифест-файлом, который описывает содержимое архива, т. е. в общем виде из чего архив состоит. Программные контейнеры, которые впоследствии будут использовать этот боб, извлекая его из jar-файла, всегда требуют, чтобы манифест- файл был. Подробнее о структуре манифест-файла можно прочитать в описании jar-программы для Java. Она всегда входит в бесплатную поставку JDK любой версии. В случае simpleBean манифест-файл будет выглядеть следующим образом:

Name: SimpleBean.class
Java-Bean: True

Эти две строки надо запомнить в текстовом файле с произвольным именем, например, manifest.tmp.

3.         Далее надо упаковать созданный Bean в архив и обязательно включить в него манифест-файл. Это делается по команде:

jar cfm SimpieBean.jar manifest.tmp SimpieBean.class

Если Bean состоит из нескольких производных классов и образует Java- пакет, например, с именем bangbean, то его манифест-файл будет выглядеть следующим образом:

Manifest-Version: 1.0
Name: bangbean/BangBean.class
Java-Bean: True

При этом манифест-файл помещается в корень, и строка для упаковки компонента Bean со всеми его классами, размещающимися в каталоге c:\temp\bangbean, будет такая:

jar cfvm BangBean.jar manifest.txt -С bangbean/*.class

При этом после отработки команды архиватор jar выдаст вам следующую информацию:

added manifest
adding: bangbean/BangBean$ML.class (in=1556) (out=848) (deflated 45%)
adding: bangbean/BangBean$MML.class (in=668) (out=417) (deflated 37%)
adding: bangbean/BangBean.class (in=2740) (out=1334) (deflated 51%)

После этого считаем, что вы создали вполне работоспособный Bean, который можно загружать куда угодно и работать с ним так же, как и с элементом управления ActiveX.

Можно переопределять его свойства, вызывать его методы, заставить его реагировать на определенные события и т. д. Заметьте, что Bean — это гораздо более гибкий объект, чем ActiveX, потому что это всего лишь класс, а не специализированная программа или библиотека.
Данный класс написан на переносимом языке программирования, поэтому наш Bean можно даже включать в Delphi, в Visual Basic так же, как мы включаем в них купленные нами или самостоятельно разработанные управляющие элементы ActiveX.

В дальнейшем вы увидите, как можно это сделать, а пока поработаем с Bean SimpieBean в каком-нибудь IDE, например, Visual Age.

Из Visual Age загрузим ВеаnВох-контейнер, входящий в набор примеров Sun BDK Examples. Конечно, это можно сделать и непосредственно из Sun BDK (Bean Development Kit — бесплатная поставка), но некоторые его просто не имеют, хотя почти в любой RAD-системе, и в Java Builder, и в Visual Cafe, и в Visual Age, есть примеры работы с BDK.

После активизации ВеаnВох-контейнера (рис. 2.4) он автоматически загружает в свой левый фрейм все имеющиеся в каталоге jars уже готовые компоненты Bean. Их можно перетаскивать на рабочую панель и использовать. Если вы хотите загрузить новый Bean, надо просто перейти в меню FiIe -> LoadJar и указать местоположение архива с этим компонентом. После загрузки имя его появится в левом фрейме.

Рис. 2.4. Загрузка SimpleBean в контейнер sun.beanbox из среды Visual Аgе

На первый взгляд во всем этом нет ничего необычного, однако, посмотрим, что с этим Bean можно сделать еще? Для облегчения работ по дальнейшему совершенствованию и модификации Bean можно подготовить два Маkе- файла: один — для Unix, а другой — для Windows NT.

Теперь подготовим версию для Windows:

     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru