Класс LighthouseMIDlet реализует пользовательский интерфейс в дополнение к основному холсту, в результате пользователь может выбрать режим функционирования приложения (клиент или сервер). Класс MIDP, который называется Form, используется для создания этого интерфейса в виде формы. На формах вы можете размещать стандартные элементы управления, например, кнопки и группы выбора. В мидлете Lighthouse используется группа выбора, предлагающая два варианта («Server» или «Client»), которая очень хорошо подходит в данном случае.
Группа выбора создается как объект типа ChoiceGroup, инициализируемый строковым массивом peerNames. Созданная группа применяется к форме и становится ее неотъемлемой частью. Затем к форме добавляются две команды Play (Играть) и Exit (Выход). Команда Exit завершает работу мидлета, а команда Play запускает мидлет, применяя выбранный режим работы. Команда Play связана с константой Command.OK, в результате выполнения команды создается объект класса LHCanvas. Это основной разработанный вами холст.
Важно отметить, что выбранный режим функционирования передается в качестве второго параметра конструктору класса LHCanvas. Именно так холст узнает, в каком режиме он должен функционировать, в соответствии с этим переменной isServer присваивается нужное значение.Тестирование приложения
Мидлет Lighthouse – это, вероятно, самое мудреное приложение, которое вы тестировали, поскольку оно требует наличия двух мобильных телефонов, или двух запущенных эмуляторов J2ME. Несмотря на то что я настоятельно рекомендую тестировать приложение на реальных устройствах, J2ME позволяет наглядно протестировать мидлет на двух расположенных рядом виртуальных телефонах. Чтобы протестировать мидлет Lighthouse, запустите два раза эмулятор J2ME. На одном из виртуальных телефонов выберите режим функционирования «сервер», а на другом – «клиент». На рис. 14.1 на виртуальном телефоне выбран режим сервера.
Рис. 14.1. При запуске мидлета Lighthouse пользователь должен указать желаемый режим работы: клиент или сервер
После того как выбран режим сервера, пользователь видит сообщение о том, что сервер готов к работе и ожидает подключения клиента (рис. 14.2).
В другой части сетевого уравнения находится мидлет-клиент, запускаемый на другом телефоне. Когда между клиентом и сервером установлено соединение, строка статуса выводит информацию об этом.
На рис. 14.3 показано, как выглядит экран клиентского приложения после установления соединения.
Когда соединение установлено, пользователи могу начать отправлять сообщения, используя азбуку Морзе, нажимая клавиши соответствующие точкам и тире. На рис. 14.4 показано, как клиент отправляет сообщение точка (dot) нажатием клавиши влево.
Как показано на рисунке, на экран выводится слово Dot (точка), означающее, что сообщение было отправлено. В это время сервер принимает это сообщение и появляется короткая вспышка света (рис. 14.5).