Конспект лекций по курсу Выбранные вопросы информатики (часть 2) для специальности Информатика Графика

Вид материалаКонспект
Описание исходного текста
Графика/ AWT / Многопоточность и легковесные процессы (доп.мат)/ Ввод – вывод и работа с файлами (доп.мат)/ 1
Закрывание потоков 84
Аплет Form 115
Другие методы класса MediaTracker 121
Подобный материал:
1   ...   9   10   11   12   13   14   15   16   17



If your browser recognized the applet tag, you would see an applet here.






Описание исходного текста

В главном классе аплета определено несколько полей и методов. Рассмотрим эти поля и наиболее важные методы.

Поля класса PlayClip

В поле m_ClipName хранится имя звукового файла, которое передается через параметр ClipName из документа HTML. По умолчанию для этого параметра используется значение kaas.au.

Строка PARAM_ClipName хранит имя указанного выше параметра.

Ссылка на интерфейс AudioClip хранится в поле auClip:

AudioClip auClip;

Следующие три поля хранят ссылки на кнопки, предназначенные для управления проигрыванием звукового файла:

Button btPlay;

Button btLoop;

Button btStop;

Поле fLoopPlay типа boolean используется для флага, которым отмечается режим проигрывания звукового файла в цикле.

Метод getParameterInfo

Метод getParameterInfo возвращает описание единственного параметра нашего аплета, через который передается имя звукового файла.

Метод init

Сразу после запуска аплета метод init получает значение параметра - имя звукового файла, и если этот параметр задан в документе HTML, записывает полученное имя в поле m_ClipName:

param = getParameter(PARAM_ClipName);

if(param != null)

m_ClipName = param;

Далее создаются три кнопки, управляющие звучанием аплета:

btPlay = new Button("Play");

btLoop = new Button("Loop");

btStop = new Button("Stop");

Кнопка Stop блокируется, так как на данный момент проигрывание еще не запущено:

btStop.disable();

Для блокирования вызывается метод disable, определенный в классе Button.

Подготовленные таким образом кнопки добавляются в окно аплета:

add(btPlay);

add(btLoop);

add(btStop);

Последнее, что делает метод init перед тем как возвратить управление, это получение ссылки на интерфейс AudioClip:

auClip = this.getAudioClip(

getCodeBase(),m_ClipName);

Адрес URL каталога, в котором расположен аплет, определяется с помощью метода getCodeBase, о котором мы говорили в предыдущей главе.

Метод action

Метод action получает управление, когда пользователь нажимает на одну из кнопок, расположенных в окне аплета. В зависимости от того, какая именно кнопка была нажата, выполняются различные действия.

Если пользователь нажал кнопку Play, вызывается метод play для запуска однократного проигрывания звукового файла:

auClip.play();

btStop.enable();

Сразу после того как проигрывание будет запущено, приложение разблокирует кнопку Stop, предоставляя пользователю возможность прервать звучание.

В том случае, когда пользователь нажал кнопку Loop, вызывается метод loop, запусчкающий проигрывание звукового файла в цикле:

auClip.loop();

fLoopPlay = true;

btStop.enable();

После запуска устанавливается флаг fLoopPlay и разблокируется кнопка Stop.

И, наконец, если пользователь нажимает кнопку Stop, выполняется остановка проигрывания методом stop:

auClip.stop();

fLoopPlay = false;

btStop.disable();

Флаг fLoopPlay сбрасывается, после чего кнопка Stop блокируется.

Метод start

Метод start получает управление при первом запуска аплета, а также когда страница документа появляется вновь после того как пользователь временно переходил к просмотру другой страницы.

Наша реализация метода start возобновляет циклическое проигрывание, если оно выполнялось, когда пользователь покинул страницу с аплетом:

if(fLoopPlay)

auClip.loop();

Метод stop

Если пользователь запустил проигрывание звукового файла в цикле, а затем перешел к просмотру другой страницы, метод stop останавливает циклическое проигрывание:

if(fLoopPlay)

auClip.stop();

Когда пользователь вернется к просмотру нашей страницы, метод start, описанный выше, возобновит проигрывание звукового файла.



Графика/
AWT /
Многопоточность и легковесные процессы (доп.мат)/
Ввод – вывод и работа с файлами (доп.мат)/ 1


Работа в сети (доп.мат)/ 1

Растровые изображения и анимация и звук 1

Лекция 1 2

Графика 2

Контекст отображения 2

Методы класса Graphics 2

Установка атрибутов контекста отображения 4

Выбор цвета 4

Метод 5

Описание 5

Выбор шрифта 5

Описание 7

Рисование геометрических фигур 8

Линии 8

Прямоугольники и квадраты 8

Многоугольники 9

Овалы и круги 11

Сегменты 11

Получение значения параметров 14

Метод paint 15

Как обрабатываются события 16

События от мыши 18

Лекция 2 23

AWT 23

Компоненты в окне 23

Кнопки 24

Переключатели 25

Списки класса Choice 27

Списки класса List 28

Текстовое поле класса Label 31

Текстовое поле класса TextField 32

Многострочное текстовое поле класса TextArea 33

Работа с системой Layout Manager 39

Режим FlowLayout 40

Режим GridLayout 41

Режим BorderLayout 42

Режим CardLayout 42

Режим GridBagLayout 43

Работа с панелями 46

Создание панелей 46

Добавление панелей 47

Рисование в окне панели 47

Окна и диалоговые панели 52

Окна класса Frame 52

Класс Menu 55

Класс MenuItem 56

Создание диалоговых панелей 56

Приложение MenuApp 57

Лекция 3 64

Многопоточность и легковесные процессы 64

Многопоточность 64

Процессы, потоки и приоритеты 64

Реализация многопоточности в Java 65

Методы класса Thread 65

Синхронизация потоков 69

Лекция 4 78

Ввод – вывод и работа с файлами 78

Работа с файлами 78

Работа со стандартными потоками 81

Создание потоков, связанных с файлами 81

Запись данных в поток и чтение данных из потока 83

Закрывание потоков 84

Работа с файлами и каталогами при помощи класса File 87

Создание базы данных 97

Лекция 5 99

Работа в сети 99

Создание сетевых приложений 99

Адрес IP и класс InetAddress 99

Универсальный адрес ресурсов URL 100

Класс URL в библиотеке классов Java 101

Конструкторы класса URL 101

Методы класса URL 101

Метод openStream 101

Метод getContent 101

Метод getHost 102

Метод getFile 102

Метод getPort 102

Метод getProtocol 102

Метод getRef 102

Метод hashCode 102

Метод sameFile 102

Метод equals 102

Метод toExternalForm 102

Метод toString 102

Метод openConnection 102

Передача данных с использованием сокетов 102

Работа с потоковыми сокетами 103

Инициализация сервера 103

Инициализация клиента 104

Передача данных между клиентом и сервером 104

Завершение работы сервера и клиента 104

Класс Socket 104

Конструкторы класса Socket 104

Методы класса Socket 104

Использование датаграммных сокетов 105

Класс DatagramSocket 105

Класс DatagramPacket 105

Связь приложений Java с расширениями сервера Web 106

Класс URLConnection 107

Аплет ShowChart 108

Исходные тексты аплета ShowChart 108

Описание исходного текста аплета ShowChart 109

Поля класса ShowChart 109

Метод init 109

Метод paint 110

Приложения SocketServ и SocketClient 110

Описание исходного текста серверного приложения SocketServ 112

Описание исходного текста клиентского приложения SocketClient 114

Аплет Form 115

Исходные тексты аплета Form 115

Описание исходныех текстов аплета Form 117

Исходный текст программы CGI store.exe 118

Лекция 6 119

Растровые изображения и анимация 119

Загрузка и рисование растрового изображения 119

Класс Image 120

Ожидание загрузки изображений 120

Ожидание загрузки добавленных изображений 121

Другие методы класса MediaTracker 121

Применение интерфейса ImageObserver 122

Видео в окне аплета 123

Аплет CDRotation 123

Исходные тексты приложения 124

Описание исходных текстов 125

Метод start 126

Метод stop 126

Метод paint 126

Метод run 126

Метод displayImage 127

Звук в аплетах Java 128

Загрузка и проигрывание звуковых файлов 128

Аплет PlayClip 128

Исходные тексты приложения 128

Описание исходного текста 130

Поля класса PlayClip 130