Екрани и екранни елементи
Тази книга ще ви научи как да се разработи софтуер за «Sun Microsystems» J2ME платформа компанията. Тази книга се придържа към стила на учебник, това не е референтна ръководство.
Целта - да ви даде солидна основа в идеите и техниките, които ще ви даде възможност да вземе решение за самостоятелно разработване на приложения с високо качество.
Книга: Платформа J2ME
Екрани и екранни елементи
Екрани и екранни елементи
Обява 5.1 показва файл с име UIComponentDemo.java, който определя изходния код на новата програма, показва използването на MIDP. Този файл се използва кода в други файлове, които заедно представляват пълна демонстрация на компонентите на потребителския интерфейс на програмата.
Обявата 5.1. Изходният код UlComponentDemo
Той демонстрира използването на високо равнище компоненти MIDP UI. Тази демонстрация клас създава списък на демонстрационни програми за избор от страна на потребителя. Елементите в списъка са всъщност имената на основните класове на демонстрационни програми. MID-годишна създава инстанция представени сред списъка с елементи, избрани от потребителя и след това да ги изпълнява.
обществени клас UlComponentDemo простира MIDlet
частен Command изход = нова Command ( "Изход", Command.EXIT, 1);
// Имената на различни демонстрационни програми: Елементите в този списък
// са имената на основните класове за всяка демонстрация
// програма, частен статични String [] демонстрации =
частен статичен UIComponentDemo например = нула;
// Списъка за недвижими компонент, който показва елементи
// изброени в «демоса» изброени по-горе.
частен Списък mainMenu = нов списък ( "Избор на демо", Choice.IMPLICIT,
// конструктор No-Arg. обществен UIComponentDemo ()
// Обърнете внимание на призива на супер (). извършва
// не-арг конструктор в класа на средата на лятото. супер ();
Връща една единствена инстанция на този клас. Обаждане на този метод, преди да създадете обект връща нулев указател.
^ Връща инстанция на този клас.
публично статично UIComponentDemo getlnstance ()
иначе, ако (C == излизане) 1 откажат ();
Кодът е описано в Пример 5.1, е първият пример, тъй като е създаден с помощта на един вид обект на дисплея. Екранът е в основата на институционалната рамка на MID-Letov.
Обявата 5.1 се определя от средата години. Неговият екран е компонент на високо равнище на списъка, който показва списък от опции, които отразяват различни елементи, които демонстрира програмата. Фигура 5.2 показва списък с най-високо ниво демонстрация на приложения, които могат да работят. Това основния екран е инстанция на List.
Обърнете внимание на стрелката на екрана, насочена надолу. Тя посочва, че има елементи, за които не е достатъчно пространство на екрана. Ако превъртите надолу малко, а сочеща надолу стрелка ще изчезне, а вместо това ще бъде стрелка, сочеща нагоре. Тези стрелки са поставени на реализацията на екрана на компонент List.
Списък е изглед на екрана, което разбира се е показвано и го адаптира към познатата структура с общо приложение. Можете да видите в Обява 5.1, че списъкът за пример се показва в момента, но по същността си е обект, който получава събития отбор повикване. Сам MID-години е единица за такива събития слушат, се регистрират като CommandListener за тези събития. Той прилага CommandListener интерфейс и определя метод commandAction ().
Алтернативен начин за създаване на слуховите блокове създаването на компоненти на събития, които се случват в него. За да постигнем това, обаче, ще трябва да се създаде подклас в компонент клас, в този случай се създава подклас на List. Аз избрах първия подход и се използва стандартен клас Списък без subclassing.
Фигура 5.2 показва списък с демонстрационни програми на потребителския интерфейс компоненти. Имената, които виждате, са имената на основните класове за всяка демонстрация. Когато един от тях се изпълнява, съответстваща демонстрационни дейности. Разбира се, че трябва да се съберат данни за демо програми, преди да се опитате да ги започне. В противен случай, можете да получите ClassNotFoundException грешка.
Ако използвате J2ME Wireless Toolkit, трябва само да поставите вашите изходни файлове в проекта / директория UIComponents / SRC. След това създайте проект. Wireless Toolkit компилира всички изходни файлове в директория КСО /. Той ще започне проверка на предварително верификатор и най-накрая да се поставят файловете. клас в часовете директория проекта /. От този момент можете да изпълнявате демонстрация на програмата, посочена в главния прозорец, средата на лятото.
В следващия пример за първи път ще се съберат и след това предоставя програма AlertDemo първият елемент в списъка. За да стартирате компилиран демонстрационна програма, просто изберете AlertDemo от списъка показан на фигура 5.2. Повторете тези стъпки за създаване и изпълнение на всяка една от другите демонстрации.
Фигура 5.3 показва на екрана, който се появява, когато изберете елемент от списъка AlertDemo демонстрационни програми най-високо ниво. Този екран показва различен набор от елементи - определя вида на уведомление - с друг компонент, наречен MIDP ChoiceGroup. Екранът съдържа видове за уведомяване, създадени в AlertDemo.java код файл, показан на Обява 5.2. Избирането на една от позициите на този екран създава и показва пример за този вид компонент Alert.
Наследяване йерархия показано на Фигура 5.1 показва, че ChoiceGroup е нито екран или показвано. Този тип Точка. Спомнете си от точка 3. Точка че е компонент, който може да бъде обобщена във формата. Имайте предвид, че AlertDemo клас завършва форма, което му дава възможност да се обединят и TextField елементи ChoiceGroup.
На Фигура 5.3 можете да видите форма - копие AlertDemo - която съдържа предмети ChoiceGroup и TextField. Припомнете си, че Форма е само компонент MIDP, които могат да включват други компоненти. По този начин, AlertDemo програма трябва да използва елементи за съхранение Форма ChoiceGroup и TextField.
Фигура 5.2. Изображение UIComponentDemo основния екран. Елементи са имената на основните класове за всяка демонстрация
Фигура 5.3. Начало уведомления екран демонстрация програма е форма, която obedinyaetTextField и ChoiceGroup
Обявата 5.2. Известията са екрани, но те не могат да съдържат командване обекти. Трябва да посочите показвано, която трябва да се покаже, когато уведомлението не ще бъде на разположение
Имената на видове подбор ЕКСКЛУЗИВНО и множество говорят за себе си. Изпълнение на MIDP, се визуализира на екрана иконите за избор са различни за изключителни и многобройни списъци. Допускат списъци за избор имат кръг от ляво на текст елемент, подобен на селективните бутоните на AWT и Swing приложения, както и интериор точка посочване на избрания елемент. Множество списъци за избор визуализират кутия компонент от ляво на текстовия елемент, подобен на бутоните за марката на AWT и Swing приложения.
Вие вече сте виждали един пример за сигнализиране в глава 3, тук можете да го видя отново. метод commandAction () AlertDemo клас създава пет различни видове отчети, въз основа на данните, които потребителят влиза в екрана Build Alert (Създаване на уведомяване), както е показано на фигура 5.3. Конструкторът на класа е на стойност Alert AlertType. който отразява вида на уведомление, че варира в зависимост от обекта. Клас AlertType определя пет константи, които представляват възможни видове актуализации, показани в Таблица 5.2.
Таблица 5.2. Клас константи AlertType, които представляват възможни видове обекти сигнализиране
Клас постоянна AlertType - Описание
АЛАРМА (внимание) - Уведомление, което показва наличието на аварийни събития
ПОТВЪРЖДАВАНЕ (потвърждение) - В диалоговия прозорец, който подсказва на потребителя за потвърждаване на действието
ГРЕШКА (грешка) - диалоговия прозорец, който уведомява потребителя за грешка
INFO (информация) - диалогов прозорец, в който има информационно съобщение на потребителя
ПРЕДУПРЕЖДЕНИЕ (Предупреждение) - В диалоговия прозорец, който показва предупреждение
уведомление Външен вид не се променя в зависимост от вида на уведомлението. Целта на вида на уведомление е да даде възможност на програмиста да по-лесно да се разграничат различните уведомления обекти. Той също така дава възможност да се покаже на изпълнението на някои видове уведомления по различни начини.
типа на уведомяване не засяга поведението му. Виждали ли сте подобна организация на Command обект в приложението HelloWorld. Обикновено възлагане на определен тип Command не промени поведението си по никакъв начин. Изборът е ваш като програмист в създаването на последователност в начина, по който се третират с подобни видовете сигнали и командни обекти.
Ако стартирате програмата от примера, ще видите, че екраните за уведомяване не разполагат с команди, свързани с тях, в действителност те не могат да ги има. Вие също така ще забележите, че екрана на уведомление изчезне след 5 секунди и се върнете на екрана Build Alert (Създаване на уведомяване). Причината за това се крие във факта, че програмата е по подразбиране продължителността на 5-секунда за всички уведомления.
Големината на срока на действие на външния вид на уведомлението трябва да бъде по-голяма от 0. задаване на стойности водят до по-малко от 0 IllegalArgumentException. Можете да зададете времето за изтичане на уведомлението по метода Alert.setTimeout (). Ако зададете постоянна Alert.FOREVER, реализация пут Съставено екранен бутон (Готово), за да уведомлението. Съобщението ще остане отворена, докато потребителят кликне Готово (Готово).
TextField е най-новото нов компонент, който въвежда тази демонстрационна програма. TextField е версия на позиция, както е показано на фигура 5.1. TextField - е един от двата компонента за въвеждане на текст. Друг е текст полето, което ще обсъдим по-късно в тази глава. Компоненти за въвеждане на текст с помощта на концепцията за ограничение, което да ограничава приноса към определен набор от разрешени знаци, определени ограничения сила на отделните компоненти.
TextField клас определя различните видове ограничения, наложени константи, изброени в таблица 5.3.
Таблица 5.3. Видове ограничения, наложени от класа на TextField
ограничения константа - Описание
НЯКОЙ - Всички букви и цифри
само цифри - NUMERIC
Парола - Знаците не се показват
PHONENUMBER - само цифри, изпълнението на формата, осигурява работа
URL - Само синтактично правилен LJRL