Автор неизвестен - Платформа J2Me

Здесь есть возможность читать онлайн «Автор неизвестен - Платформа J2Me» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Платформа J2Me: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Платформа J2Me»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Эта книга научит вас, как разрабатывать программное обеспечение для платформы J2ME компании «Sun Microsystems». Эта книга придерживается стиля учебного пособия, это не справочное руководство.
Цель — дать вам твердую основу в понятиях и техниках, которая даст вам возможность решиться на самостоятельную разработку качественных приложений.

Платформа J2Me — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Платформа J2Me», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

*/

public class SearchScreen extends Form

implements CommandListener

{

private static Command go =

new Command("Go", Command.SCREEN, 1);

private static Command back = new Command("Back", Command.BACK, 1);

private static SearchScreen instance; private Display display;

private AddressBookMain addressBook; private TextField keyEntry;

/**

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

*/

public SearchScreen(}

(

super("Search for entry");

instance = this;

PersistenceDerao pDemo = PersistenceDemo.getlnstance ();

display = Display.getDisplay (pDerno);

addressBook = AddressBookMain.getlnstance ();

keyEntry = new TextField("Enter name",

null, 20, TextFieid.ANY); append(keyEntry);

addCommand(go); addCommand(back);

setCoramandListener(this);

}

/**

Возвращает один экземпляр данного класса.

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

/**

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

**/

public static SearchScreen getlnstance ()

return instance;) void display!)

(display.setCurrentlthis);

}

/**

Отображает данные, переданные на экран.

На самом деле этот метод передает обязанности по отображению данных экземпляру SearchResultScreen. Этот метод, однако, устанавливает новый экземпляр данного класса на текущее отображение.

Затрата выражается в Vector записей из хранилища записей адресной книги.

*/

void displaySearchResults(Vector results)

SearchResultScreen screen =

new SearchResultScreen (results);

display. setCurrenJ: (screen);

)

Создает конечный набор записей, соответствующих указанному имени.

Критерии отбора заключаются в том, что запись должна соответствовать имени, введенному пользователем в TextField «keyEntry». Этот метод задействует метод AddressBook.getMatchesByName() для применения специального фильтра, определяющего соответствие этого имени.

*/

Vector buildSearchResults()

{

AddressBook addressBook =

AddressBookMain.getInstance(). getAddressBook();

String matchKey = keyEntry.getString(); Vector results = new Vector();

try

{

RecordEnuraeration re =

addressBook.getMatchesByName(matchKey);

byte [] record = null;

while (re.hasNextElement())

record = re.nextRecord (); results.addElement(record);

}

}

catch (RecordStoreException rse)

}

rse.printStackTracet);

)

return results;

)

/**

Создает результаты поиска и отображает их на экране.

class BuildSearchResultsAction implements Runnable

{

public void run ()

Vector results = buildSearchResults ();

displaySearchResults(results);

}

}

public void commandAction(Command c, Displayable d);

if (c == go)

Runnable action = new BuildSearchResultsAction();

action.run ();

)

else if (c == beck)

}

AddressBookMain.getInstanced.display!);

}

}

}

Метод buildSearchResults() в классе SearchScreen получает список записей, вызывая метод getMatchesByName (String matchKey) в классе AddressBook. Этот метод фильтрует записи для вывода лишь тех, в которых поле имени начинается с matchKey.

Метод getMatchesByName () выполняет эту фильтрацию, пересылая фильтр записей как первый аргумент в метод enumerateRecords (). Экземпляр MatchAllNamesFilter определяет семантику фильтра для нахождения всех записей, которые начинаются с подстроки matchKey.

Метод enumerateRecords () обращается к следующему методу объекта фильтра для каждой записи в хранилище:

boolean matches(byte [] candidate)

Если в результате выводится true, он включает эту запись в набор списка. Теоретически это сходно с определением запроса SQL в системе родственных баз данных. Объект RecordFilter определяет критерии поиска.

Обратите внимание, что в листинге 7.2 аргумент RecordFilter был равен нулю. Таким образом класс RecordList может вывести все записи в списке, фильтр не применяется.

Вы можете описать несколько фильтров для поддержки поиска по различным критериям. Следуя программе листинга 7.4, вы можете определить несколько внутренних классов, которые реализуют RecordFilter и используют внутренний класс, соответствующий осуществляемому поиску.

Компараторы записей

Вы, несомненно, заметили, что второй аргумент, пересланный в enumerateRecords () в предыдущих примерах, был равен нулю. Этот второй параметр является «заполнителем» для компаратора записей. Компаратор записей — это объект, который сравнивает две записи для определения их упорядочивания или сортировки. Компараторы предоставляют приложениям возможность выполнять различную сортировку.

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

int ccmparefbyte [] recordl, byte [] record2)

Компаратор также определяет три константы, описанные в таблице 7.1, которые ваша реализация должна использовать как текущие выводимые значения данного метода.

Таблица 7.1.Константы RecordComparator

Константа — Описание

public static int EQUIVALENT— Две записи эквивалентны в соответствии с семантикой сравнения

public static int FOLLOWS— Запись 1 «больше», чем запись 2, в соответствии с семантикой сравнения

public static int PRECEDES— Запись 1 «меньше», чем запись 2, в соответствии с семантикой сравнения

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Платформа J2Me»

Представляем Вашему вниманию похожие книги на «Платформа J2Me» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Автор неизвестен - Старшая Эдда
Автор неизвестен
libcat.ru: книга без обложки
Автор неизвестен
libcat.ru: книга без обложки
Автор неизвестен
libcat.ru: книга без обложки
Автор неизвестен
Автор неизвестен Европейская старинная литература - Песни Матушки Гусыни
Автор неизвестен Европейская старинная литература
Автор неизвестен - Картезианский развратник
Автор неизвестен
Автор неизвестен Детская литература - Верхом на урагане [Из американского фольклора]
Автор неизвестен Детская литература
Автор неизвестен Эротика и секс - Роман Виолетты. Парижские сладости
Автор неизвестен Эротика и секс
libcat.ru: книга без обложки
Автор неизвестен Юмор
Автор неизвестен Эпосы, мифы, легенды и сказания - Мифы древней Индии. Литературное изложение В. Г. Эрмана и Э. Н. Темкина
Автор неизвестен Эпосы, мифы, легенды и сказания
Автор неизвестен Древневосточная литература - Древнекитайская философия. Собрание текстов в двух томах
Автор неизвестен Древневосточная литература
Отзывы о книге «Платформа J2Me»

Обсуждение, отзывы о книге «Платформа J2Me» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x