В этой главе вы узнаете, как использовать низкоуровневый программный интерфейс приложения MIDP, который является одним из двух программных интерфейсов приложения компонентов пользовательского интерфейса MIDP. О первом API MIDP, высокоуровневом, вы узнали в главе 4. Низкоуровневый API дает вам возможность делать то, что в высокоуровневом API осуществлять было невозможно:
получать низкоуровневую информацию о событиях (такую, как информация о нажатии клавиш), которую получает ваш компонент; определять внешний вид своего компонента пользовательского интерфейса. Два класса составляют определение низкоуровневого API: javax.microedition.lcdui. Canvas; javax.microedition.lcdui.Graphics.
На рисунке 6.1 воспроизводится часть диаграммы иерархии наследования MIDP, приведенной на рисунке 5.1. Вы можете видеть, что класс Canvas происходит из Displayable.
Однако, поскольку класс Canvas не является типом Screen, он не использует ни одной абстракции, определяемой иерархией Screen, например, добавление заголовка или тикера невозможно.
Класс
В компоненте
Однако, в дополнение к обработке высокоуровневых команд, класс
Реализация MIDP передает информацию о событии низкого уровня объекту
Название метода — Описание
protected void keyPressed(int KeyCode)
— Клавиша была нажата и отпущенаprotected void keyReleased.(int KeyCode)
— Клавиша была отпущенаprotected void keyRepeated(int KeyCode)
— Клавиша была нажата несколько разprotected void pointerPressed(int x, int y)
— Указатель был нажатprotected void pointerDragged(int x, int y)
— Указатель был перемещенprotected void pointerReleased(int x, int y)
— Указатель был отпущенprotected abstract void paint(Graphics g)
— Произошел запрос Canvas на перерисовкуДля выполнения обработки событий низкого уровня ваш конкретный подкласс
В листингах 6.1 и 6.2 представлена простая схема обработки команд и событий в Canvas. Код в листинге 6.1 является кодом MID-лета для демонстрационной программы, большая часть которой выглядит знакомо. Код в листинге 6.2, однако, создает подкласс Canvas — Displayable, который согласно коду, показанному в листинге 6.1, размещается на экране.