Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Дейтел Х.М. -> "Технологии профаммирования на Java 2 Книга 3" -> 126

Технологии профаммирования на Java 2 Книга 3 - Дейтел Х.М.

Дейтел Х.М. , Дейтел П.Дж., Сантри С.И. Технологии профаммирования на Java 2 Книга 3 — М.: Бином-Пресс, 2003. — 672 c.
ISBN 5-9518-0051-Х
Скачать (прямая ссылка): tehprogrammjava220033.pdf
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 271 >> Следующая

Экраны Screen также поддерживают программные кнопки: кнопки, которые обычно располагаются на беспроводных устройствах непосредственно под дисплеем (но над клавиатурой). На рис. 5.8 курсор мыши наведен на правую программную кнопку, которая подсвечена. Слово Select на экране над правой программной кнопкой указывает, что при нажатии пользователем этой программной кнопки будет выбран выделенный элемент из списка List, а после этого на дисплей будет выведен другой экран. J2ME предоставляет мидлетам эту функциональную возможность посредством объектов Command, инкапсулирующих действие, которое будет выполняться объектом, принимающим объект Command. В строках 25-27 мидлета TipTestMIDlet объявляются три объекта типа Command: selectCommand, nextCommand и backCommand. Объект selectCommand, как мы вскоре увидим, дает возможность пользователю выбирать на экране элементы из списка List. Объект nextCommand дает возможность пользователю при воспроизведении теста Tip-Test принимать следующий вопрос с вариантами названий рубрик советов. Объект backCommand позволяет пользователю просмотреть предыдущий экран.
В строках 46-48 реализуются экземпляры этих объектов. Первым параметром конструктора Command является имя, или надпись, которая будет отображаться на экране над программной кнопкой. Второй параметр представляет собой константу, которая задает, каким образом мидлет будет реагировать на нажатие пользователем программной кнопки. Например, константа Command.OK указывает, что пользователь предоставил некоторые входные данные (через текстовое поле или через выбор элемента списка). Константа Command.BACK указывает, что пользователю нужно просмотреть предыдущий экран. Логика, которая управляет поведением мидлета для команд каждого типа, реализована программно. Третий параметр задает, над какой программной кнопкой будет помещена надпись. При реализации ряда объектов Command объект Command с наименьшим номером будет иметь надпись, расположенную справа от программной кнопки в окне эмулятора MIDP-устройства Sun. Для объекта, ассоциированного со следующим наименьшим номером, устройство Sun поместит надпись над левой программной кнопкой. В соответствии с командами в строках 46-48, устройство помещает надпись «Select» над правой программной кнопкой, надпись «Next Tip» над правой программной кнопкой и надпись «Back» над левой программной кнопкой.
290
Глава 5
Совет по переносимости программ 5.2
Схема нумерации команд Command может быть различной для разных устройств. Например, в эмуляторе Sun текст команды Command по умолчанию помещается над правой программной кнопкой. В других устройствах текст может располагаться над левой программной кнопкой.
В строке 51 реализуется список с именем mainScreen, который предоставляет ссылку на сервлет WelcomeServlet. Первый параметр, передаваемый объекту List, представляет собой имя списка — этот текст появляется в верхней части экрана МГОР-устройства. Второй параметр представляет собой константу, указывающую на тип реализуемого списка. Тип списка определяет, каким образом пользователь может перемещаться по списку с помощью клавиатуры. Этот параметр может иметь одно из трех значений: List.IMPLICIT, List.EXCLUSIVE и List.MULTIPLE. Константа List.IMPLICIT задает, что текущий элемент, на котором находится фокус в списке, представляет собой выбор пользователя, т.е. пользователь изменяет свой выбор при прокрутке списка. Константа List.EXCLUSIVE требует, чтобы пользователь нажимал центральную программную кнопку для указания на выбираемый элемент списка, после чего следует ему нажать правую программную кнопку для завершения выбора. Однако при этом перед окончательным выбором (но после того, как выбираемый элемент помечен), пользователь может осуществлять прокрутку списка. Константа List.MULTIPLE дает пользователю возможность выбирать сразу несколько элементов в списке.
В строке 52 команда selectCommand добавляется в экран mainScreen, чтобы пользователь видел надпись "Select" над правой программной кнопкой. В строках 55-69 объекту mainScreen разрешается прослушивать события от команды select-Command путем создания нового объекта CommandListener. Когда пользователь нажимает программную кнопку, объект selectCommand вызывает метод commandAction (строки 59-67). Этот метод принимает в качестве параметров объект Command, ассоциированный с последней нажатой программной кнопкой, и объект Displayable, над которым это действие выполняется. Логика работы метода commandAction будет разъяснена ниже.
Оператор в строке 73 получает объект менеджера дисплея для устройства. Когда конструктор возвращает управление, AMS вызывает метод startApp, который предписывает мидлету TipTestMIDlet принять ввод пользователя и отобразить содержимое экранов. В строке 81 с использованием менеджера дисплея в качестве текущего экрана устанавливается экран mainScreen. На рис. 5.29 показан результат выполнения этой операции.
Теперь мидлет TipTestMIDlet ожидает ввода от пользователя. Единственные события, зарегистрированные для TipTestMIDlet, связаны с правой программной кнопкой. Когда пользователь нажимает эту кнопку, объект selectCommand вызывает метод commandAction любого зарегистрированного слушателя Command-Listener. В строке 63 URL сервлета WelcomeServlet передается методу get-ServerData (строки 390—432), который связывается с сервером и принимает данные. В строках 396—397 с использованием параметра URL открывается соединение HttpConnection. В строке 398 осуществляется вызов метода setUserAgentHeader (строки 466-488), чтобы сервер мог идентифицировать, какой клиент отправил запрос. В отличие от Internet Explorer, браузеров Openwave UP и Pixo, клиент J2ME не имеет стандартного заголовка User-Agent, поэтому необходимо определить собственный заголовок и сохранить его в интерфейсе ClientUserAgentHeaders, чтобы сервлеты могли распознать мидлет TipTestMIDlet как клиента J2ME. В строках 473-476 с помощью информации о профиле и конфигурации TipTestMIDlet создается заголовок User-Agent. В строках 479-480 этот заголовок назначается запросу HttpConnection.
Предыдущая << 1 .. 120 121 122 123 124 125 < 126 > 127 128 129 130 131 132 .. 271 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100