Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2MeΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 20

Автор Автор нСизвСстСн

TextField являСтся послСдним Π½ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π²ΠΎΠ΄ΠΈΡ‚ эта дСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°. TextField Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Item, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° рисункС 5.1. TextField β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для Π²Π²ΠΎΠ΄Π° тСкста. Π”Ρ€ΡƒΠ³ΠΈΠΌ являСтся TextBox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ обсудим Π΄Π°Π»Π΅Π΅ Π² этой Π³Π»Π°Π²Π΅. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для Π²Π²ΠΎΠ΄Π° тСкста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ понятиС ограничСния Π²Π²ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄ Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ², опрСдСляСмого Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ ограничСниями ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.

Класс TextField опрСдСляСт Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, устанавливаСмыС константами, пСрСчислСнными Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 5.3.


Π’Π°Π±Π»ΠΈΡ†Π° 5.3. Π’ΠΈΠΏΡ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ, устанавливаСмыС классом TextField


ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° ограничСния β€” ОписаниС

ANY β€” Π›ΡŽΠ±Ρ‹Π΅ Π±ΡƒΠΊΠ²Π΅Π½Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ

EMAILADDR β€” Волько синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ e-mail

NUMERIC β€” Волько Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ

PASSWORD β€” Π—Π½Π°ΠΊΠΈ Π½Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Π½Π° дисплСС

PHONENUMBER β€” Волько Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, рСализация прСдоставляСт Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°

URL β€” Волько синтаксичСски ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ LJRL


Π’Ρ‹ опрСдСляСтС ограничСния Π² конструкторС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр с ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΌΠΈ тСкстовыми Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ экзСмпляры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ тСкстовых ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ, пСрСчислСнных Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 5.3, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ логичСский AND этих ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ установлСнныС ограничСния, исслСдовав ΠΏΠΎΠ»Π΅ CONSTRAINT_MASK ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TextField.


Экранная навигация

На Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ‹ познакомились со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса:

β€” MIDlet;

β€” Display;

β€” Displayable;

β€” Form;

β€” List;

β€” Alert;

β€” ChoiceGroup;

β€” TextField.


Π’Ρ‹ ΡƒΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ прилоТСния MIDP β€” с ΠΈΡ… ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ. ДСмонстрационная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, показанная Π² листингС 5.3, обращаСтся ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с графичСским ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ интСрфСйсом: экранной Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ. Если Π²Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ Π½Π°Π·Π°Π΄ ΠΈ взглянСтС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, описанноС Π² листингС, Π±ΠΎΠ»Π΅Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ экрану ΠΈΠ· любой Ρ‚ΠΎΡ‡ΠΊΠΈ. Π­Ρ‚ΠΎ свойство присутствуСт Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с графичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Однако Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² MIDP Π½Π΅ являСтся автоматичСским. Волько ΠΎΠ΄ΠΈΠ½ Displayable Π²ΠΈΠ΄ΠΈΠΌ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ рСализация Π½Π΅ отслСТиваСт ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… экранах.

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Β«Π²ΠΏΠ΅Ρ€Π΅Π΄Β» Π»Π΅Π³ΠΎΠΊ. Как дСмонстрируСтся Π² прилоТСниях, Π²Ρ‹ просто создаСтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Displayable ΠΈ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ запрос Π½Π° Π΅Π³ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅. Но ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Β«Π½Π°Π·Π°Π΄Β» Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС. Π’Π°ΠΌ придСтся ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ ссылка Π½Π° экранный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ Π² дСмонстрационной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ссылку Π½Π° экзСмпляр, созданный ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ UIComponentDemo.java, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ объявлСниС элСмСнта:

projected static Displayable instance;

Π­Ρ‚ΠΎ объявлСниС ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄:

public static Displayable getlnstance()

{

return instance;

}


Π”Π°Π½ΠΉΡ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΡΠ²Π»ΡΠ΅Ρ‚ΡΡ с ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ static, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Бсылку ΠΈΠ· любого мСста Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π±Π΅Π· создания экзСмпляра класса, содСрТащСго этот ΠΌΠ΅Ρ‚ΠΎΠ΄ β€” Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ AlertDemo прСдоставляСт ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Back (Назад) Π½Π° экранС Build Alert (Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ увСдомлСния), ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π° рисункС 5.3. Если Π²Ρ‹ Π½Π°ΠΆΠΌΠ΅Ρ‚Π΅ эту ΠΊΠ»Π°Π²ΠΈΡˆΡƒ, Π²Ρ‹ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ вновь Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ commandAction() Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π² листингС 5.4.


Листинг 5.4. Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ссылку Π½Π° экзСмпляр любого экрана прилоТСния, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ Ρ…ΠΎΡ‡Π΅Ρ‚ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ


public void commandAction(Command c, Displayable d)

{

UIComponentDemo jiemo = UIComponentDemo.get Instance ();

Display display = Display.getDisplay(demo);

int timeSec;

int cimeMillis;

if (c == go)

}

// УвСдомлСния Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ Commands.

String title = elements[type.getSelectedlndex()];

Alert alert = new Alert(title);;

alert.setString("A " + title + " alert");

timeSec = Integer.parselnt(tPref.getString());

timeMillis. = timeSec * 1000;

if (timeMillis <= 0)

}

timeMillis = Alert.FOREVER;

}

alert.setTimeout(timeMillis);

display.setCurrent(alert, AlertDemo.getlnstance());

}if (c == back)

}

UIComponentDemo.getInstance(). display!);

}


Если ΠΊΠΎΠΌΠ°Π½Π΄Π° являСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Back (Назад), этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ экран, пСрСсылая экзСмпляр List, созданный Π² UIComponentDemo.java, Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ Display.setCurrent(). Если UIComponentDemo.getlnstance() Π½Π΅ Π±Ρ‹Π» объявлСн static, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ссылку Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ List Π±ΡƒΠ΄Π΅Ρ‚ слоТно.

Π’ соотвСтствии с этой ΠΈΠ΄ΠΈΠΎΠΌΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ AlertDemo.getlnstance () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ссылку Π½Π° экзСмпляр, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ дисплСй Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ, послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎ. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использована ссылка this. Но ΠΌΠ΅Ρ‚ΠΎΠ΄ getlnstance() ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ доступным, Ссли ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ·ΠΆΠ΅ ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΎ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π²Π°ΠΆΠ½Ρ‹ΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠΌ являСтся использованиС ΠΈΠ΄ΠΈΠΎΠΌΡ‹, которая Π΄Π΅Π»Π°Π΅Ρ‚ ссылки Π½Π° экраны Π»Π΅Π³ΠΊΠΎ доступными.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ двумя строками ΠΌΠ΅Ρ‚ΠΎΠ΄Π° commandAction () ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:


UIComponentDemo demo = UIComponentDemo.get Instance ();

Display display = Display.getDisplay(demo);


Π­Ρ‚ΠΈ строчки ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Ρƒ ΠΆΠ΅ ΠΈΠ΄ΠΈΠΎΠΌΡƒ для Π»Π΅Π³ΠΊΠΎΠ³ΠΎ получСния ссылки Π½Π° MID-Π»Π΅Ρ‚. Класс UIComponentDemo опрСдСляСт этот статичСский ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ освобоТдаСт вас ΠΎΡ‚ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ кодирования ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ понадобится ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ссылку Π½Π° дисплСй:

Display.getDisplay(UIComponentDemo.getMIDiet());

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, это Π½Π΅ СдинствСнный способ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ Π½Π°Π±ΠΎΡ€Π° ссылок Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Displayable. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Displayable Π² Π½Π°Π±ΠΎΡ€, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сдСлаСтС Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ экрану, Π²Ρ‹Ρ‚ΠΎΠ»ΠΊΠ½ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΈΠ· стСка ΠΈ установитС Π΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Displayable.

Π‘Π΅Π·ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ, смысл Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Β«Π·Π½Π°Ρ‚ΡŒΒ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ экран для отобраТСния. Иногда Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ экрану. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Ρ…ΠΎΡ‚Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π΄Π²Π° ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ экрана Π½Π°Π·Π°Π΄ ΠΈΠ»ΠΈ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ экрану. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² для выполнСния Π½ΡƒΠΆΠ½ΠΎΠΉ Π²Π°ΠΌ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΠΈ.


Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Item

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΎΠΏΠΈΡΡ‹Π²Π°Π»ΠΈΡΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ основу всСх ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ MIDP. Π’ ΠΎΡΡ‚Π°Π²ΡˆΠ΅ΠΉΡΡ части Π³Π»Π°Π²Ρ‹ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.


DateField

На Π³Π»Π°Π²Π½ΠΎΠΌ экранС дСмонстрационного прилоТСния UlComponent (смотри http://www.phptr.com/) Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ элСмСнтом списка являСтся дСмонстрационная вСрсия класса DateField. На рисункС 5.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ DateField являСтся Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ Item; ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ Form для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ. Π’ листингС 5.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ исходный ΠΊΠΎΠ΄ Ρ„Π°ΠΉΠ»Π° DateFieldDemo.java.


Листинг 5.5. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ экраны ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌΠΈ, ΠΌΠ΅Ρ‚ΠΎΠ΄ getlnstanceO Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ экранный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π°. Π­Ρ‚ΠΎΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр Form


import Java.util.Date;

import Java.util.Calendar;

import Java.util.TimeZone;

import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.DateField;

import javax.microedition.lcdui.Displayable;

import javax.

microedition.lcdui.Form;

/**


ДСмонстрируСт использованиС класса DateField ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса MIDP.


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

public class DateFieldDemo extends Form implements CommandListener

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

private static Displayable instance;

private DateField date = new DateField("Date/Time in GMT",

DateField.DATE_TIME, TimeZone.getDefault ());

/**

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€.

*/

public DateFieldDemo()

}

super ("DateField Demo");

Calendar cal = Calendar.getlnstance();

date.setDate(cal.getTime());

append(date); addCommand (back); setCcmmar.dListener (this);

instance = this;

}

/**


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½ экзСмпляр этого класса. Π’Ρ‹Π·ΠΎΠ² этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΠ΅Ρ€Π΅Π΄ созданиСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ пустой. ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ.


@Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ экзСмпляр этого класса.

*/

public static Displayable getlnstance ()

{

return instance;

}

public void commandAction(Command c, Displayable d)

{

if (c == back)

{

UI ComponentDemo.get Instance(). display();

}

}

}


ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ DateFieldDemo дополняСт класс Form. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ просто добавляСт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ DateField ΠΊ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΈ нСобходимая структура сформирована. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса DateFieldDemo сходны с ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΈΡ… ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ здСсь Π΅Ρ‰Π΅ Ρ€Π°Π·.

DateField являСтся простым тСкстовым элСмСнтом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя. На рисункС 5.4 ΠΏΠΎΠΊΠ°Π·Π°Π½ экран Π΄Π°Ρ‚Π°/врСмя, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ DateFieldDemo.