Назад
Код Морзе

Представленный апплет может диктовать набранный текст азбукой Морзе. Для этого достаточно набрать текст в соответствующем поле и нажать кнопку "Старт". Текст будет диктоваться посредством звуковых сигналаов, а также светового индикатора. Для каждой буквы на экране будет отображен ее код в соответствии с азбукой Морзе.
Для остановки диктования необходимо нажать клавишу "Стоп".

Апплет состоит из трех классов shpora, vibro и code. Класс shpora - это главный класс апплета. Он является потомком класса Applet. Он создает элементы управления на форме апплета и обрабатывает события от этих элементов. На форме апплета расположены: поле для ввода текста textArea1, кнопка "Старт" button1, кнопка "Стоп" button2, поле для вывода кода Морзе textField1. Создание этих элементов производится в методе init(). Обработчик нажатия от клавиши button1 читает содержимое поля textArea1 и запускает поток vibro, который будет диктовать текст. Обработчик нажатия от клавиши button1 останавливает поток vibro.

UML диаграмма класса shpora:
UML диаграмма класса shpora

Класс vibro представляет собой поток, который диктует текст.Его метод run посимвольно декодирует текст и "произносит" каждый символ. Для воспроизведения кода символа звуком используются wav файлы dash.wav(тире) и dot.wav(точка). Для воспроизведения этих файлов создано два экземпляра класса AudioClip. В зависимости от текущего знака кода метод run вызывает методы dash.start или dot.start(). Отображение символа кода световым индикатором производится путем прорисовки на форме апплета красного или черного квадрата.

UML диаграмма класса vibro:
UML диаграмма класса vibro

Класс code содержит массив соответствия текстовых символов и кодов Морзе decode, а также метод getCode кототорый позволяет по заданному символу получить соответствующий ему код Морзе.

UML диаграмма класса code:
UML диаграмма класса vibro

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







   

Статистика Реклама
Мониторинг сервера осуществляется системой UpTime.Ru
Rambler's Top100
www.software-testing.ru -- \xf2\xe5\xf1\xf2\xe8\xf0\xee\xe2\xe0\xed\xe8\xe5 \xe8 \xea\xe0\xf7\
xe5\xf1\xf2\xe2\xee \xef\xf0\xee\xe3\xf0\xe0\xec\xec\xed\xee\xe3\xee ^M
\xee\xe1\xe5\xf1\xef\xe5\xf7\xe5\xed\xe8\xff.