- •Особенности языка 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
pcs.removePropertyChangeListener(pcl);
}
3.В метод setter свойства вставить оператор сохранения старого значения свойства (до изменения свойства) и вызов метода firePropertyChange() с нужными параметрами для запуска события
изменения свойства (после изменения свойства): public void setX(int newX)
{
int oldX = x; x = newX;
pcs.firePropertyChange("X", new Integer(oldX), new Integer(x));
}
При выполнении метода firePropertyChange() создается объект события типа PropertyChangeEvent и передается в качестве параметра вызываемому методу propertyChange() зарегистрированного блока прослушивания. В этом методе можно воспользоваться информацией из объекта события об источнике события, имени свойства, старом и новом значениях.
Ограниченные свойства
Bean-компонент, имеющий ограниченное свойство, генерирует событие PropertyChangeEvent при попытке изменения свойства.
Приемник события (предварительно зарегистрированный блок прослушивания) может запретить изменение, выбросив исключение PropertyVetoException.
Таким образом, ограниченное свойство поддерживает механизм ограничения возможных изменений конкретной областью допустимых значений. Это позволяет Веаn-компонентам работать поразному в разных приложениях.
Классы и интерфейсы пакета java.beans, которые обеспечивают возможность создания ограниченных свойств у Bean-компонентов:
•Класс PropertyChangeEvent — класс события изменения свойства.
•Интерфейс VetoableChangeListener — интерфейс блока прослушивания события запрещаемого изменения свойства. Содержит объявление метода, который должен быть реализован блоком
прослушивания и вызывается при изменении ограниченного свойства: public void vetoableChange(PropertyChangeEvent pce)
throws PropertyVetoException
•Класс VetoableChangeSupport — класс, используемый Bean-компонентами, поддерживающими ограниченные свойства.
Сцелью обеспечения управления списком зарегистрированных блоков прослушивания и уведомления блоков прослушивания о событии запрещаемого изменения свойства класс имеет методы для регистрации блоков прослушивания (приёмников события изменения свойства), отмены регистрации и для запуска события изменения свойства, которое предназначено зарегистрированным
(добавленным в список) блокам прослушивания:
public void addVetoableChangeListener(VetoableChangeListener vcl); public void removeVetoableChangeListener(VetoableChangeListener vcl); public void fireVetoableChange(String propertyName, Object oldValue,
Object new Value).
• Класс PropertyVetoException — класс исключения.
Преобразование обычного свойства в ограниченное
Способы преобразования свойства в ограниченное и связанное очень похожи. Однако, при создании ограниченного свойства необходимо в set-методе запускать событие изменения свойства
39