Чтение онлайн

на главную

Жанры

Шрифт:

import jav,ax.micro etiition.lcdui. Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Display;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.TextBox;

import javax.microedition.lcdui.TextField;

import javax.microedition.midlet.MIDlet;

/**

Этот MID-лет демонстрирует использование отображаемого элемента TextBox пользовательского интерфейса MIDP.

@смотри javax.microedition.Icdui.TextBox

* /

public class TextBoxDemo extends MIDlet implements CommandListener

private Command quit = new Command("Exit", Command.EXIT, 1);

private static TextBoxDemo instance;

//

Компонент пользовательского интерфейса TextBox. private TextBox textBox;

// Максимальное число знаков, которое TextBox может

// поддерживать. private int MAX_SIZE = 100;

// Первоначальный текст в TextBox. private String initialText =

"You can edit the contents of this TextBox";

/**

Конструктор.

*/

public TextBoxDemo

super ; instance = this;

}

public void pauseApp

{

.

}

public void destroyApp(boolean destroy)

}

textBox = null; initialText = null; instance = null;

}

void quit

}

destroyApp (true);

notifyDestroyed;

public void startApp

{

texcBox = new TextBoxC'A TextBox", initialText, MAX_SIZE,

TextField.ANY); сextBox.addCommand(quit); textBox.setCommandListener(this);

display;

}

/**

Возвращает единственный экземпляр этого класса. Вызов этого метода до создания объекта возвратит пустой указатель.

@возращает экземпляр класса.

*/

public static TextBoxDemo getlnstance

return instance;

}

public void display!)

{

Display. getDisplay(this). setCurrent(textBox);

}

public void commandAction(Command c, Displayable d)

if (c == quit)

{

quit;

}

}

}

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

На рисунке 5.11 изображен первоначальный текст, используемый для создания экземпляра TextBox. Как и в случаях с другими редактируемыми объектами, вы просто выбираете TextBox с помощью кнопки выбора Select эмулятора и затем редактируете содержимое. Вы можете переходить с помощью четырех клавиш стрелок, стирать знаки с помощью клавиши Clear (Очистить) и вводить их с помощью кнопочной панели, либо компьютерной клавиатуры при использовании эмулятора. Конечно, программа может также манипулировать содержимым с помощью API, который поддерживает вставку, удаление, установку максимального размера, установку ограничений и так далее. На рисунке 5.12 показан экран после выбора текстового окна для редактирования.

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

Выводы по главе

Эта глава знакомит вас с полным набором классов компонентов пользовательского интерфейса MIDP. Существует две общие категории компонентов интерфейса пользователя: те, что расположены под Displayable в иерархии, и те, что находятся под иерархией Item.

Класс Screen происходит непосредственно из Displayable и определяет основные абстракции в MIDP. Приложения MIDP в своей основе базируются на экранах.

Form, вид Screen, является только разновидностью экрана, которая может включать другие компоненты. Form может содержать объекты String, изображения, определяемые классом Image, и объекты, чьи типы являются подклассами класса Item.

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

В главе 3 представлена полная программная структура и метафоры программирования. В главе 4 описан высокоуровневый API MIDP. Эта глава дополняет все это знакомством с компонентами MIDP, которые реализуют высокоуровневый API.

В следующей главе вы познакомитесь с низкоуровневым API MIDP.

Глава 6. Низкоуровневый программный интерфейс приложения (API) MIDP

В этой главе вы узнаете, как использовать низкоуровневый программный интерфейс приложения MIDP, который является одним из двух программных интерфейсов приложения компонентов пользовательского интерфейса MIDP. О первом API MIDP, высокоуровневом, вы узнали в главе 4. Низкоуровневый API дает вам возможность делать то, что в высокоуровневом API осуществлять было невозможно:

получать низкоуровневую информацию о событиях (такую, как информация о нажатии клавиш), которую получает ваш компонент; определять внешний вид своего компонента пользовательского интерфейса. Два класса составляют определение низкоуровневого API: javax.microedition.lcdui. Canvas; javax.microedition.lcdui.Graphics.

На рисунке 6.1 воспроизводится часть диаграммы иерархии наследования MIDP, приведенной на рисунке 5.1. Вы можете видеть, что класс Canvas происходит из Displayable.

< image l:href="#"/>

Рисунок 6.1. Объекты Canvas отображаются на экране, но поскольку они не являются экранами, они не используют какие-либо элементы абстракции экрана, представленной в компонентах высокоуровневого пользовательского интерфейса MIDP

Однако, поскольку класс Canvas не является типом Screen, он не использует ни одной абстракции, определяемой иерархией Screen, например, добавление заголовка или тикера невозможно.

Поделиться:
Популярные книги

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Дорогой Солнца

Котов Сергей
1. Дорогой Солнца
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
Дорогой Солнца

(Не) Все могут короли

Распопов Дмитрий Викторович
3. Венецианский купец
Фантастика:
попаданцы
альтернативная история
6.79
рейтинг книги
(Не) Все могут короли

Играть, чтобы жить. Книга 1. Срыв

Рус Дмитрий
1. Играть, чтобы жить
Фантастика:
фэнтези
киберпанк
рпг
попаданцы
9.31
рейтинг книги
Играть, чтобы жить. Книга 1. Срыв

(Не)нужная жена дракона

Углицкая Алина
5. Хроники Драконьей империи
Любовные романы:
любовно-фантастические романы
6.89
рейтинг книги
(Не)нужная жена дракона

Ветер и искры. Тетралогия

Пехов Алексей Юрьевич
Ветер и искры
Фантастика:
фэнтези
9.45
рейтинг книги
Ветер и искры. Тетралогия

Маверик

Астахов Евгений Евгеньевич
4. Сопряжение
Фантастика:
боевая фантастика
постапокалипсис
рпг
5.00
рейтинг книги
Маверик

Вперед в прошлое 6

Ратманов Денис
6. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 6

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Без шансов

Семенов Павел
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Без шансов

Приручитель женщин-монстров. Том 6

Дорничев Дмитрий
6. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 6

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Идеальный мир для Социопата

Сапфир Олег
1. Социопат
Фантастика:
боевая фантастика
рпг
постапокалипсис
6.17
рейтинг книги
Идеальный мир для Социопата