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





Импортирование JavaBean в Visual Basic

Из Visual Basic выберем в меню Project пункт Components и добавим компонент simpleBean, как показано ниже (рис. 2.11).
После того как мы его выбрали, он мгновенно появится в левом фрейме окна разработки, где VB обычно показывает все имеющиеся в его распоряжении элементы управления ActiveX (ActiveX Controls). Вот и наш появился там в виде пиктограммы с изображением белого листочка.
Перетащим его в форму. Все ОК!

Мы можем работать с компонентом. Задавать ему свойства в редакторе свойств и т. д. Программа Visual Basic даже не чувствует и не может почувствовать, что это не родной компонент ActiveX и что он был создан на Java. В этом и заключается прелесть кросс-платформенных технологий (рис. 2.12).

Рис. 2.11. Выбор компонента SimpleBean в Visual Basic

Рис. 2.12. Использование SimpleBean в VB IDE в виде ActiveX-компонента

На самом деле, если бы наш компонент не был таким простым, мы могли бы перепрограммировать его методы, которые также показываются в окне (рис. 2.13).

Рис. 2.13. Список доступных методов SimpleBean

Но дело вовсе не в том, чтобы до бесконечности усложнять пример. Главное — это понять принцип создания таких компонентов и затем использовать их в своей работе. Две технологии Microsoft и Sun здесь не враждуют, а взаимно обогащаются. Впрочем, для наиболее любознательных читателей, я, все-таки, не откажу себе в удовольствии привести пример из технического описания Java ActiveX Bridge, в котором показывается возможность взаимодействия двух Beans, находящихся в одном ActiveX-контейнере.

Для этого потребуется скрипт (сценарий) для первоначального соединения. Как только это будет выполнено, два компонента связываются непосредственно друг с другом без использования СОМ. Это позволяет JavaBean- компоненту получать и обрабатывать события других JavaBean-компонентов, выполняющихся в том же самом контейнере без дополнительных усилий взаимодействия со всеми уровнями СОМ.
Рассмотрим компонент JavaBean, который выполняет интерфейс java.awt.event.Action-Listener, чтобы обработать событие, связанное с нажатием кнопки. Чтобы сделать это, JavaBean может непосредственно выполнить интерфейс listener, или, что гораздо проще, обеспечить класс adaptor, который делает это за него. В примере используются дополнительные возможности JDK1.1 — вложенные классы.

 

Вызов метода getActionListener в этом JavaBean возвращает объект, который осуществляет интерфейс ActionListener. Реализация интерфейса actionPerformed позволяет создать новое диалоговое окно, чтобы сообщить пользователю, что событие ActionEvent было получено.
Экземпляр JavaBean ExplicitButton, который поставляется как часть BDK, в исходных текстах использует интерфейс ActionListener. Вы можете привязать реализацию интерфейса первым JavaBeans-компонентом к экземпляру ExplicitButton в диалоговом окне, когда пользователь нажимает на кнопку. Соединение между компонентами станет возможным, когда будет загружена форма Visual Basic:

Private Sub Form_Load()
ExplicitButtonl.addActionListener(JavaBeans1.getActionListener)
End Sub

Если компонент JavaBeansExample непосредственно выполняет java. awt. event.ActionListener, то код должен выглядеть так:


Class JavaBeansExample implements java.awt.event.ActionListener {
... Некоторый код ...
public void actionPerformed(java.awt.event.ActionEvent e) {
Dialog myDialog = new Dialog(new Frame(), "Event Received");
myDialog.reshape(200,200, 400,400);
myDialog.show();
... Некоторый код...
}

 

И метод соединения такой:

Private Sub Form_Load()
ExplicitButtonl.addActionListener(JavaBeans1.Object)
End Sub

 

Любой подход допустим. Когда пользователь нажимает кнопку (JavaBeans ExplicitButton), событие перехватывается компонентом JavaBeanExample, который затем отображает диалоговое окно. Эти прямые соединения не ограничены событиями. Объект, созданный одним компонентом JavaBean, может быть передан как параметр метода для другого JavaBean. Обратите внимание, что первоначальный объект передается не как копия.

 

 

     
 

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