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

 

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

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

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 2 — М.: Бином-Пресс, 2003. — 468 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220032.pdf
Предыдущая << 1 .. 24 25 26 27 28 29 < 30 > 31 32 33 34 35 36 .. 204 >> Следующая

Метод deliverMessage (строки 83-89), определенный в удаленном интерфейсе ChatClient, дает возможность объекту ChatServer использовать обратные вызовы RMI для доставки входящих сообщений ChatMessage клиенту ChatClient. Если имеется слушатель MessageListener, зарегистрированный классом RMIMessageManager (строка 86), в строках 87-88 вызывается метод messageReceived интерфейса MessageListener, чтобы уведомить слушателя MessageListener о входящем сообщении ChatMessage. В строках 87-88 вызываются методы getSender и get-Message класса ChatMessage для извлечения отправителя сообщения и тела сообщения, соответственно.
Метод serverStopping (строки 92-96), определенный в удаленном интерфейсе ChatClient, дает возможность серверу ChatServer использовать обратные вызовы RMI, чтобы уведомить клиента ChatClient, что сервер ChatServer останавливается, чтобы клиент ChatClient мог разорвать соединение, и уведомить слушателя DisconnectListener. В строке 95 вызывается метод fireServerDisconnected класса RMIMessageManager, чтобы уведомить зарегистрированного слушателя DisconnectListener, что сервер ChatServer отключил клиента ChatClient.
Метод setDisconnectListener (строки 99—103), определенный в интерфейсе MessageManager, дает возможность слушателю DisconnectListener регистрировать уведомления при отключении клиента сервером ChatServer. Например, пользовательский интерфейс клиента может регистрировать эти уведомления, чтобы известить пользователя об отключении сервера. Метод fireServerDisconnected (строки 106-110) представляет собой метод для отправки сообщений server-Disconnected слушателю DisconnectListener. Если имеется зарегистрированный слушатель DisconnectListener, в строке 109 вызывается метод serverDisconnected интерфейса DisconnectListener для уведомления слушателя, что сервер отсоединен. Мы подробно обсудим интерфейс DisconnectListener, когда будем рассматривать пользовательский интерфейс клиента.
Клиентский интерфейс пользователя и его реализация Мы отделили пользовательский интерфейс клиента от реализации MessageManager посредством интерфейсов MessageListener и DisconnectListener (рис. 2.19 и 2.20). Класс ClientGUI использует реализации интерфейсов MessageListener и DisconnectListener для взаимодействия с классом MessageManager и предоставляет графический пользовательский интерфейс клиенту.
Интерфейс MessageListener (рис. 2.21) дает возможность объектам класса реализации принимать входящие сообщения от MessageManager. В строке 9 определен метод messageReceived, который принимает в качестве параметра имя пользователя, от которого поступило сообщение, и тело сообщения.
Удаленный вызов методов
65
1 // MessageListener.java
2/1 MessageListener - интерфейс для классов, которые хотят
3 // получать новые сообщения.
4 package com.deitel.messenger; 5
6 public interface MessageListener {
7
8 // получения нового сообщения
9 public void messageReceived( String from. String message );
10 )_
Рис. 2.21. Интерфейс MessageListener для приема новых сообщений
Интерфейс Disconnect Listener (рис. 2.22) позволяет объектам реализации принимать уведомления, когда сервер отсоединяет объект MessageManager. В строке 9 определен метод serverDisconnected, который принимает в качестве строкового параметра сообщение message, которое указывает, по какой причине сервер разорвал соединение.
1 // DisconnectListener.java
2 // DisconnectListener определяет метод serverDisconnected,
3 // который указывает, что сервер отключил клиента.
4 package com.deitel.messenger; 5
6 public interface DisconnectListener (
7
8 11 получение уведомления, что сервер отключен
9 public void serverDisconnected( String message );
10 }_:_
Рис. 2.22. Интерфейс DisconnectListener для приема уведомлений об отсоединении сервером
Класс ClientGUI (рис. 2.23) предоставляет пользовательский интерфейс для клиента Deitel Messenger. Пользовательский интерфейс состоит из меню и панели инструментов с действиями Action для соединения с сервером и отсоединения от сервера ChatServer, текстовой области JText Area для отображения входящих сообщений ChatMessage, текстовой области JTextArea и кнопки JButton для отправки новых сообщений на сервер ChatServer. В строках 27-29 объявляются ссылки на действия Action для соединения с сервером и отсоединения от сервера ChatServer, а также отправки сообщений ChatMessage. В строке 35 объявляется ссылка типа MessageManager для реализации MessageManager, которая обеспечивает сетевое взаимодействие. В строке 38 объявляется ссылка типа Message-Listener для приема новых сообщений от сервера ChatServer через интерфейс MessageManager.
1 // ClientGUI.java
2// ClientGUI предоставляет пользовательский интерфейс для отправки
3 // и получения сообщений с помощью MessageManager.
4 package com.deitel.messenger; 5
6// Набор базовых пакетов Java
7 import java.awt.*;
8 import java.awt.event.*;
9 import java.util.*;
З 3a*. 204
66
Глава 2

10 11// Пакеты расширений Java
12 import javax. swing. *;
13 import javax.swing.border.*;
Предыдущая << 1 .. 24 25 26 27 28 29 < 30 > 31 32 33 34 35 36 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100