- •Учебно-методическое пособие
- •V курса заочной формы обучения автф
- •Предисловие
- •Глава 1. Основы программирования на java. Создание простейших приложений и апплетов в netbeans 7.0
- •Инструментальная среда разработки программ на Java
- •Использование среды NetBeans 7.0
- •Структура Java-программы
- •Переменные
- •Примитивные типы. Всего в Java определено восемь примитивных типов: int (4b), short (2b), byte (1b), long (8b), float (4b), double (8b), boolean (true, false), char (2b).
- •Модификаторы доступа. Модификаторы доступа используются для управления доступностью элементов класса из других частей программы (в других классах).
- •Наследование классов
- •Специальные переменные
- •Пакеты и импортирование Классы являются основными строительными блоками любой Java-программы. Пакеты содержат в себе наборы классов (а также исключения и интерфейсы).
- •Импортирование пакетов. Существует ряд способов доступа к классам в пакетах, основным из которых является импортирование пакета в начале программ:
- •Создание пакетов. Для создания пакета (т.Е. Добавления класса в пакет) в первой строке программы указывается следующее предложение:
- •Апплеты
- •События и их обработка
- •Апплеты двойного назначения
- •Практические задания
- •Вопросы для самопроверки
- •Глава 2. Обработка событий. Графика. Графика в Java
- •Цвет. Для задания текущего цвета используется метод setColor() класса Graphics. Создадим случайный цвет и установим его, g - объект Graphics:
- •Модель делегирования событий в Java 1.1
- •1. Пример обработки события с использованием реализации интерфейса.
- •2. Пример обработки события с использованием вложенных классов, наследующих классы-адаптеры.
- •3. Пример обработки события с использованием вложенного анонимного класса.
- •Графика 2d
- •Вероятностный подход
- •Практические задания
- •Вопросы для самопроверки
- •Глава 3: разработка графического интерфейса программы Библиотека графических компонент awt
- •Флажки (или переключатели). Язык Java поддерживает два типа флажков-переключателей: неисключающие (класс jCheckBox) и исключающие (класс jRadioButton).
- •Комбобоксы (или выпадающие списки). Класс jComboBox дает возможность создавать список элементов выбора, который всплывает на экране в виде меню.
- •Контейнеры
- •Менеджеры размещения компонентов
- •Практические задания
- •Вопросы для самопроверки
- •Глава 4. Классы-коллекции
- •Интерфейс Collection. Интерфейс Collection из пакета java.Util описывает общие свойства коллекций List и Set. Он содержит методы добавления и удаления элементов, проверки и преобразования элементов:
- •Классы, наследующие интерфейс List. Класс ArrayList очень похож на класс Vector, имеет тот же набор методов и может использоваться в тех же ситуациях.
- •Сравнение элементов коллекций.
- •Классы, создающие множества. Класс HashSet полностью реализует интерфейс Set и итератор типа Iterator. Класс HashSet используется в тех случаях, когда надо хранить только одну копию каждого элемента.
- •Практические задания
- •Вопросы для самопроверки
- •Глава 5. Многопотоковые приложения Процессы, потоки и приоритеты
- •Реализация многозадачности в Java
- •Создание подкласса Thread. При использовании этого способа для потоков определяется отдельный класс, например:
- •Применение анимации для мультизадачности
- •Состояние потока
- •Программирование движения объекта
- •Практические задания
- •Вопросы для самопроверки
- •Глава 6. Потоки данных. Работа с локальными файлами Организация ввода-вывода в Java
- •Классы потоков ввода-вывода
- •Иерархия классов потоков ввода-вывода
- •Консольный ввод/вывод. Для вывода на консоль используется метод println() класса PrintStream. Вместо System.Out.Println(), то вы можете определить новую ссылку на System.Out, например:
- •Каналы обмена информацией. В пакете java.Io есть четыре класса Pipedxxx, организующих обмен информацией между потоками - Thread.
- •Файловые диалоги. При работе с файлами часто требуются стандартные файловые диалоги. Библиотека Swing предлагает класс jFileChooser для реализации этого функционала.
- •Практические задания
- •Вопросы для самопроверки
- •Глава 7. Сетевые приложения «клент-сервер» Сетевые средства
- •Работа по протоколу tcp
- •Работа по протоколу udp
- •Практические задания
- •Вопросы для самопроверки
- •Глава 8. Generic-классы в java
- •Практические задания
- •Вопросы для самопроверки
Модель делегирования событий в Java 1.1
Модель событий, применяемая в Java 1.1, подходит для использования в AWT и в Swing. В этой модели каждое событие - это класс, наследуемый от класса java.util.EventObject. Все AWT события наследуются от класса java.awt.AWTEvent. Для удобства различные типы событий AWT помещены в отдельный пакет java.awt.event.
Модель событий базируется на концепции "слушаю события". Объект, ожидающий какое-либо событие, "слушает" его, является event listener. Объект, вырабатывающий событие, (источник события) поддерживает список объектов, ожидающих событие, и оповещает все объекты в списке о его появлении. Источник события имеет методы для добавления объектов, ожидающих события, и методы для удаления таких объектов.
Источник события при возникновении события запускает метод – обработчик события и передает в него объект типа EventObject или производного от него. Для того чтобы запустить нужный метод все объекты типа listener должны реализовывать определенный интерфейс. Интерфейс может определять несколько методов. Например, класс MouseEvent представляет несколько событий: нажатие кнопки, отпускание кнопки, и другие. В таблице 2.1 приводятся тип объекта, интерфейс для его обработки и методы, определяемые в каждом интерфейсе.
Для каждого из интерфейсов, содержащих более одного метода, определен класс-адаптер, который содержит пустые тела методов. Классы-адаптеры имеют имена, такие же, как и имена интерфейсов с заменой Listener на Adapter: например, MouseAdapter, WindowAdapter.
Если Вы реализовали интерфейс или создали класс адаптера, нужно создать объект для того, чтобы он "слушал" событие. Затем зарегистрировать этот объект в источнике события. В AWT источник события всегда компонента: кнопка, список, и т.д. Регистрация делается с помощью методов с именами вида addXXXListener. Удаление объекта из списка слушающих выполняется с помощью removeXXXListener. Здесь XXX - имя типа события, генерируемого источником.
Таблица 2.1.
Класс события, интерфейс и методы для обработки.
|
Event Class |
Listener Interface |
Listener Methods |
|
ActionEvent |
ActionListener |
actionPerformed() |
|
AdjustmentEvent |
AdjustmentListener |
adjustmentValueChanged() |
|
ComponentEvent |
ComponentListener |
componentHidden() |
|
|
|
componentMoved() |
|
|
|
componentResized() |
|
|
|
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() |
|
|
|
windowIconified() |
|
|
|
windowOpened() |
Таблица 2.2.
Компоненты AWT и типы событий, которые они могут генерировать.
|
Компонент |
События, генерируемые компонентом |
Значение |
|
Button |
ActionEvent |
Пользователь нажал на кнопку |
|
Checkbox |
ItemEvent |
Пользователь щелкнул на элементе, изменив выбор |
|
CheckboxMenuItem |
ItemEvent |
Пользователь выбрал пункт из меню |
|
Choice |
ItemEvent |
Пользователь щелкнул на элементе, изменив выбор |
|
Component |
ComponentEvent |
Компонент передвинут, изменил размеры, стал видимым или невидимым. |
|
|
FocusEvent |
Компонент получил или потерял фокус |
|
|
KeyEvent |
Пользователь нажал или отпустил клавишу |
|
|
MouseEvent |
Пользователь щелкнул кнопкой мыши, мышь попала в пределы компонента или ушла за его границы, или пользователь тянет объект. MouseEvent имеет два интерфейса прослушивания, MouseListener и MouseMotionListener. |
|
Container |
ContainerEvent |
Компонент добавлен или удален из контейнера |
|
List |
ActionEvent |
Пользователь дважды щелкнул на элементе списка |
|
|
ItemEvent |
Пользователь выбрал пункт из списка |
|
MenuItem |
ActionEvent |
Пользователь выбрал пункт меню |
|
Scrollbar |
AdjustmentEvent |
Пользователь передвинул движок |
|
TextComponent |
TextEvent |
Пользователь изменил текст |
|
TextField |
ActionEvent |
Пользователь закончил редактирование текста |
|
Window |
WindowEvent |
Окно открыто, или закрыто. или минимизировано, или максимизировано |
