Читайте также:
|
|
27. Пакеты AWT и Swing. //по сути одно и то же AWT старше
28. Обработка событий. //слушатели
Операционной среде, которая поддерживает графический интерфейс отслеживает следующие события:
• кнопка мыши
• события Window
• события клавиатуры
• события Фокус
• события мыши
• Прием событий
Процедура обработки события основаны на объектах 3-х видов.
Событие исходные объекты-кнопки, полосы прокрутки и т.д. Таким образом, это объект, который может зарегистрировать слушателя объектов и отправить их объекты событий.
События объекта.Информация о событии заключена в объекте события. В Java все объекты события в конечном счете производным от класса java.util.EventObject. Есть подклассов для каждого типа события, такие, как ActionEvent и WindowEvent.
Событие слушателя объекты - объекты, которые осуществляют желаемый ответ на событие.Слушатель объект реализует специальный интерфейс, называемый интерфейс слушателя.
Как это работает:
Источник событий отправляет объекты событий для всех зарегистрированных слушателей, когда происходит событие.
Слушатель объектов будет использовать информацию в случае объект, чтобы определить их реакцию на события.
Вы регистрируетесь слушателя объект с исходного объекта с помощью инструкции вроде этого:
EventSourceObject.addEventListener (eventListenerObject);
Таблица 6. Типы событий, слушатели и методы слушателей в Java 1.1
Класс события | Интерфейс слушателя | Методы слушателя |
ActionEvent | ActionListener | actionPerformed() |
AdjustmentEvent | AdjustmentListener | adjustmentValueChanged() |
ComponentEvent | ComponentListener | componentHidden() componentMoved() componentResized() Cor”componentShown() |
ContainerEvent | ContainerListener | componentAdded() componentRemoved() |
FocusEvent | FocusListener | focusGained() focusLost () |
ItemEvent | ItemListener | itemStateChanged() |
KeyEvent | KeyListener | keyPressed() keyReleased() keyTyped() |
MouseEvent | MouseListener | mouseClicked() mouseEntered() mouseExited() mousePressed() mouseReleased() |
MouseMotionListener | mouseDragged() mouseMoved() | |
TextEvent | TextListener | textValueChanged() |
WindowEvent | WindowListener | windowActivated() windowClosed() windowClosing() windowDeactivated() windowDeiconified() windowlconified() windowOpened() |
29. Способы компоновки интерфейса пользователя. // layouts
30. Назначение многопоточных приложений. //веб
Ниже перечислены три главные причины использования в программе многих потоков.
• Чтобы клиентское приложение всегда немедленно реагировало на действия пользователя. Если приложение выполняет длительную задачу, она захватывает процессор, и приложение перестает реагировать на действия пользователя. Ему приходится ждать, пока закончится выполнение вспомогательной задачи. Пользователям такое поведение программы, естественно, не понравится. Радикальное решение проблемы состоит в направлении (маршаллизации) вспомогательной задачи в другой поток, в результате чего интерфейс, обслуживаемый первым потоком, будет немедленно реагировать на действия пользователя. Можно также предоставить пользователю возможность отменить вспомогательную задачу в любой момент, когда она еще не завершена.
• Для решения нескольких задач одновременно. При использовании типичного однопроцессорного компьютера многозадачность сама по себе не повышает производительность. Фактически производительность даже немного уменьшается вследствие накладных расходов на создание потоков. Однако для многих задач характерны существенные интервалы бездействия процессора. Например, процессор работает не все время при загрузке данных из внешнего источника (веб-сайта, базы данных и т.д.) или при коммуникации с отдаленным компонентом. Когда выполняются эти задачи, процессор большую часть времени не занят. Уменьшить время ожидания нельзя, потому что оно определяется пропускной способностью канала и производительностью сервера, однако можно полнее загрузить процессор другими задачами. Например, можно одновременно передать запросы трем разным веб-службам, уменьшив таким образом общее время ожидания.
• Для обеспечения расширяемости приложения на стороне сервера. Серверная часть приложения должна одновременно обслуживать произвольное (обычно большое) количество клиентов. Одновременность обеспечивается серверной технологией (например, ASP.NET). Разработчик приложений Silverlight может создать собственную инфраструктуру серверной части. Например, в главе 20 рассматривается создание приложений на основе сокетов и сетевых классов.NET. Однако подобные технологии обычно касаются серверных приложений, а не приложений Silverlight.
Дата добавления: 2015-10-29; просмотров: 113 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Исключительные ситуации, их классификация и различия. | | | Конструктори |