 
        
        - •Особенности языка Java
- •История Java
- •Характерные особенности Java
- •Разработка и выполнение Java приложения:
- •Понятие среды выполнения Java
- •Переносимость языка Java
- •Высокая производительность языка Java
- •Типы Java-приложений
- •Автономное (самостоятельное) приложение – application
- •Апплет – applet
- •Комбинированное приложение
- •Сервлет – servlet
- •Мидлет – midlet
- •Различия между автономными приложениями и апплетами
- •Автономное приложение
- •Апплет
- •Этапы жизненного цикла апплета
- •Этапы жизненного цикла в соответствии со стандартом Sun:
- •Этап инициализации
- •Этап запуска
- •Этап останова
- •Этап уничтожения
- •Этап рисования (перерисовки) окна апплета
- •Отличия Java от C++
- •Конструкторы классов
- •«Сборщик мусора»
- •Типы данных в Java
- •Простые типы
- •Ссылочные (объектные) типы
- •Строки в Java
- •Массивы в Java
- •Классы в Java
- •Особенности реализации
- •Пакеты
- •Управление доступом к элементам класса
- •Поля класса
- •Методы
- •Перегрузка и переопределение методов
- •Ключевые слова THIS и SUPER
- •Интерфейсы в Java
- •Понятие Java API
- •Пакеты ядра Java API (в JDK 1.0):
- •Развитие ядра Java API (в новой версии JDK и в Java 2)
- •Основные понятия AWT
- •Компоненты
- •Контейнеры
- •Компоновки. Менеджеры компоновки
- •События
- •События. Обработка событий
- •Иерархия классов-событий
- •Семантические события и их источники-компоненты AWT
- •Модель делегирования событий
- •Методы, объявленные в интерфейсах для семантических событий
- •Способы реализации блока прослушивания событий от AWT-компонента
- •Понятие класса-адаптера
- •Комбинированное приложение Java. Обработка события WindowEvent
- •Исключения в Java и их обработка
- •Иерархия классов исключений
- •Различия между исключениями Exception и ошибками Error
- •Организация обработки исключений в программе
- •Используемые операторы:
- •Как правильно организовывать обработку исключений
- •Понятия процесса и потока
- •Конструкторы класса Thread
- •Наиболее важные методы класса Thread
- •Способы создания потоков
- •Синхронизация потоков
- •Когда следует использовать синхронизацию потоков?
- •Механизм блокировки объекта
- •Способы использования ключевого слова synchronized
- •Синхронизированные методы
- •Оператор synchronized
- •Преимущества оператора synchronized:
- •Взаимодействие потоков: использование методов wait(), notify(), notifyAll()
- •Стандартные образцы кода использования методов
- •Поток-диспетчер событий AWT
- •Потоки и исключения
- •О группах потоков
- •Технология компонентного программирования JavaBeans
- •Понятие технологии компонентного программирования
- •Этап компиляции
- •Этап разработки
- •Этап создания приложения
- •Этап выполнения
- •Понятие компонентной модели
- •Основные требования к классам Bean-компонентов
- •Соглашения об именах
- •Соглашения об именах для свойств
- •Соглашения об именах для событий
- •Соглашения об именах для методов
- •Использование событий для управления свойствами
- •Связанные свойства
- •Преобразование обычного свойства в связанное
- •Ограниченные свойства
- •Преобразование обычного свойства в ограниченное
- •Ввод-вывод в Java: основные понятия
- •Основные группы классов и интерфейсов пакета java.io
- •Фильтрованные потоки
- •Буферизированные потоки
- •Принципы работы Buffered-потоков
- •Входные потоки
- •Выходные потоки
- •Канальные потоки
- •Синхронизация потоков данных
- •Понятие отражения (рефлексии)
- •Класс java.lang.Class
- •Классы пакета java.lang.reflect
- •Понятие интроспекции
- •Понятие сериализации
- •Обеспечение сериализуемости Bean
- •Выполнение базовой сериализации
- •Пример с сериализацией (см. SerializationDemo.java)
- •Настройка сериализации
- •Методы readObject и writeObject
- •Интерфейс Externalizable
- •Создание экземпляров сериализованных Bean
- •Приложение
- •// Файл HelloApplet.java
- •// Файл MyApplet.java
- •// Файл StringDemo.java
- •// Файл ConstrDemo.java
- •// Фрагменты файла AnimBallsPlus.java
 
Скачано с сайта http://ivc.clan.su
Модель делегирования событий
1)Если приложению требуется отреагировать на некоторое событие, оно должно реализовать блок прослушивания события соответствующего типа и зарегистрировать новый блок прослушивания для того компонента, который является источником ожидаемого события.
2)Блок прослушивания — это объект, который получает объект-событие (уведомление о событии) и должен реализовывать методы для приема и обработки события.
Методы, принимающие и обрабатывающие события, объявлены в наборе интерфейсов ***Listener, где префикс *** в имени интерфейса отражает специфику прослушиваемого события и соответствует префиксу имени класса события ***Event ( например, Action, Ajustment, Item, Text).
Интерфейсы блоков прослушивания, как и классы событий, содержатся в пакете java.awt.event.
3)Событие, генерируемое в результате действий пользователя с компонентом, передается блоку прослушивания, который зарегистрирован как заинтересованный в событиях от компонента.
4)Регистрация блока прослушивания события от компонента осуществляется вызовом метода
public void add***Listener(***Listener listener)
для данного компонента.
Параметром, передаваемым методу, является ссылка listener на объект класса, реализующего соответствующий интерфейс. Методы add***Listener определены в классах компонентов (Button,
Choice, TextField, Scrollbar и т.п.)
5) Реализация блока прослушивания события осуществляется в некотором классе приложения. При реализации интерфейса/блока прослушивания ***Listener в классе должны быть определены методы, объявленные в интерфейсе.
Метод интерфейса получает в качестве параметра объект-событие и определяет действия, которые совершает приложение в ответ на соответствующее событие. Метод вызывается после генерации события в результате действий пользователя с компонентом-источником.
В отличие от старого (JDK 1.0) способа обработки событий, в модели делегирования обработчики событий (блоки прослушивания) отделены от компонентов интерфейса пользователя, генерирующих эти события. Компонент "делегирует" событие другому объекту (блоку прослушивания), передает права на обработку этому объекту, метод которого и обеспечивает обработку данного события.
Методы, объявленные в интерфейсах для семантических событий
 ActionListener
 ActionListener
void actionPerformed(ActionEvent ae)
 AdjustmentListener
 AdjustmentListener
void adjustmentValueChanged(AdjustmentEvent ae)
 ItemListener
 ItemListener
void itemStateChanged(ItemEvent ie)
 TextListener
 TextListener
void textValueChanged(TextEvent te)
При описании реализации этих методов могут быть использованы методы классов-событий, например:
 EventObject
 EventObject
Object getSource() — возвращает объект-источник события;
 ActionEvent
 ActionEvent
String getActionCommand() — возвращает командную строку, связанную с действием (например, имя командной кнопки);
 AdjustmentEvent
 AdjustmentEvent
int getValue() — возвращает текущее значение полосы прокрутки;
 ItemEvent
 ItemEvent
22
