Владимир Цишевский - Java как центр архипелага

Тут можно читать онлайн Владимир Цишевский - Java как центр архипелага - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, год 1996. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Владимир Цишевский - Java как центр архипелага краткое содержание

Java как центр архипелага - описание и краткое содержание, автор Владимир Цишевский, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Статья опубликована в журнале Jet Info, №9, 1996 г.

Java как центр архипелага - читать онлайн бесплатно полную версию (весь текст целиком)

Java как центр архипелага - читать книгу онлайн бесплатно, автор Владимир Цишевский
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

сов, в каждом из которых переопределен метод handleEvent.

Оба этих крайних подхода небезупречны. Первый способствует на-

писанию монолитных программ, второй приводит к очень большому

числу классов.

В реальной жизни используется компромиссная идеология -

handleEvent переопределяется для составных об®ектов, об®единяю-

щих несколько элементов интерфейса и отвечающих за ясно опреде-

ленную часть работы приложения (например, разного рода диало-

ги).

Кроме того, возможны и другие модели обработки событий, направ-

ленные на лучшее отделенин логики программы от ее интерфейса. В

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

можно указать пакет "The Command Class for AWT objects", кото-

рый написал Jan Newmarch, jan@ise.canberra.edu.au.

4.3.5. Методы класса Component, связанные с обработкой событий

Ниже перечислены методы класса Component, связанные с обработ-

кой событий.

- postEvent(). Этот метод, как правило, вызывается автоматичес-

ки при наступлении соответствующего события.

- Обрабатываются события при помощи метода handleEvent(). По

умолчанию этот метод, в зависимости от типа события, вызывает

один из специализированных обработчиков событий, таких как

- - action()

- - keyUp()

- - mouseDown()

- - gotFocus()

и т.д.

Метод handleEvent() может быть переопределен. В этом случае,

как правило, вся обработка соответствующего события будет про-

исходить именно в этом методе, однако, если handleEvent() возв-

ращает false, то вызывается handleEvent() для контейнера, со-

держащего данную компоненту.

События в AWT представляются с помощью об®ектов класса Event, в

котором определены следующие переменные:

public Object target; // инициатор события

public long when; // время, когда событие произошло

public int id; // тип события(KEY_PъESS, MOUSE_DOWN...)

public int x; // координаты

public int y; // курсора

public int key; // код клавиши

public int modifiers;// код модификатора (control, shift ...)

public Object arg; // вспомогательные данные

public Event evt; // поле для соединения событий в списки

Приведем типичный пример обработки событий, когда все они обра-

батываются на верхнем уровне (в данном случае на уровне апле-

та).

class MyApplet extends Applet {

. . .

public boolean action( Event evt, Object arg) {

. . .

if ((ev.target instanceof Button) && arg.equals ("OK")) {

// Выполнить соответствующие действия

. . .

return true;

} else {

// Другие случаи

. . .

}

. . .

return false;

}

. . .

}

В этом примере, если инициатор события имеет тип Button с име-

нем "OK", то выполняются соответствующие действия и возвращает-

ся значение true, то есть событие дальше не передается.

Другой способ обработать событие заключается в создании специа-

лизированной компоненты. Пример.

class OKButton extends Button {

. . .

public boolean action (Event e, Object arg) {

// Выполнить соответствующие действия

. . .

return true;

}

}

Мы видим, насколько глубоко продумана в проекте Java связь с

операционным окружением. Удалось достичь удачного сочетания бо-

гатства возможностей с переносимостью.

5. Joe - технология связывания Java-программ

с об®ектными бизнес-приложениями

Выше, в разделе "Java, Joe и NEO", мы писали о том, что новый

продукт компании SunSoft - Joe - призван осуществлять связь

между клиентскими компонентами, написанными на языке Java, и

об®ектными серверами приложений, созданными в среде NEO. При

этом Joe берет на себя все (или почти все) технические пробле-

мы, связанные с работой в распределенной об®ектной среде, обес-

печивая в то же время для Java-программ полноценное взаимодей-

ствие с произвольными об®ектными сервисами.

В предыдущих выпусках Jet Info была опубликована шутливая "Эво-

люция программиста". Мы добавим к ней еще два раздела. Первый

из приводимых ниже примеров написан на языке Java и можеи ис-

пользоваться в составе обычных, локально работающих аплетов.

1 import java.awt.Font;

2 import java.awt.Color;

3 public class JAVAhello extends java.applet.Applet {

4 Font f = new Font ("Timesъoman", Font.BOLD, 36);

5 public void init () {

6 resize (150, 25);

7 }

8 public void paint (Graphics g) {

9 g.setFont (f);

10 g.setColor (Color.blue);

11 g.drawString ("Hello, World!", 50, 25);

12 }

13 }

Теперь модифицируем программу для Joe, чтобы обеспечить возмож-

ность работы в среде клиент/сервер.

1 import sunw.services.*;

2 import java.awt.Graphics;

3 import java.awt.Font;

4 import java.awt.Color;

5 public class JOEhello extends sunw.services.JOEApplet {

6 sunw.corba.Objectъef obj;

7 Hello.HelloWorldъef hiThere;

8 Font f = new Font("Timesъoman", Font.BOLD, 36);

9 public void init () {

10 super.init ();

11 resize (150, 25);

12 obj = find ("HelloWorldServer");

13 hiThere = Hello.HelloWorldStub.narrow (obj);

14 }

15 public void paint (Graphics g) {

16 g.setFont (f);

17 g.setColor (Color.red);

// Получим строку из удаленного об®екта, реализованного на C++,

// и выведем ее.

18 g.drawString (hiThere.sayHello (), 50, 25);

19 }

20 }

Поясним смысл новых строк, появившихся во втором варианте прог-

раммы.

В строке 1 импортируется описание предоставляемых об®ектных

сервисов.

В строке 5 об®является, что класс Hello будет наследником

JOEApplet.

В строке 6 декларируется обобщенная (не типизированная) ссылка

на NEO-об®ект. Она будет использована для сохранения результата

поиска об®екта по имени.

В строке 7 описана типизированная ссылка на NEO-об®ект, которая

будет использоваться для манипулирования удаленным об®ектом (в

частности, для вызова методов) средствами языка Java.

В строке 12 мы получаем от службы имен NEO ссылку на нужный нам

серверный об®ект.

В строке 13 выполняется операция приведения обобщенной ссылки к

типизированному виду.

Наконец, в строке 18 выполняется вызов метода удаленного об®ек-

та, написанного, вообще говоря, не на языке Java (например, на

C++). Впрочем, вид этого оператора не зависит ни от удаленнос-

ти, ни от языка реализации об®екта.

Процесс разработки программ в среде Joe довольно прост. Он сос-

тоит из следующих этапов:

- Трансляция интерфейса к NEO-об®ектам, написанного на языке

IDL (Interface Definition Language), в класс на язык Java. Этот

этап поддержан входящим в состав Joe компилятором IDL - Java.

Результат трансляции содержит суррогатные методы, которые во

взаимодействии с брокером об®ектов обеспечивают взаимодействие

с удаленными об®ектами, не отличающееся от локального случая. В

свою очередь, брокер об®ектов, входящий в состав Joe, прозрач-

ным для клиентской стороны образом загружается в WWW-навигатор

вместе с Java-аплетами.

- Написание клиентского кода на языке Java с использованием

сгенерированного интерфейса и средств Joe для взаимодействия с

удаленными об®ектами.

Дальше Java-программа компилируется и выполняется обычным обра-

зом.

Подчеркнем, что описанная об®ектная среда обеспечивает полно-

ценное, двустороннее взаимодействие между клиентом и сервером.

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

в об®ектах-клиентах. Для обеспечения этой возможности в составе

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


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

Владимир Цишевский - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Java как центр архипелага отзывы


Отзывы читателей о книге Java как центр архипелага, автор: Владимир Цишевский. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x