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

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

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

ΠŸΠ΅Ρ€Π²Π°Ρ строка Π½Π° рисункС 5.4 Β«Date/Time in GMTΒ» (Β«Π”Π°Ρ‚Π°/врСмя Π² GMTΒ») являСтся ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ ΠΈ опрСдСляСтся Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ конструктора. Вторая строчка являСтся Π΄Π°Ρ‚ΠΎΠΉ, Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡ β€” Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ no-arg DateFieldDemo Π² листингС 5.5 дСмонстрируСт, ΠΊΠ°ΠΊ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρƒ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ DateField с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Java.util.Calendar.

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Ρ‚Π° ΠΈ врСмя, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ² конструктора устанавливаСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΠΎΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Класс DateField опрСдСляСт Ρ‚Ρ€ΠΈ константы (пСрСчислСнныС Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 5.4), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, какая информация отобраТаСтся.


Π’Π°Π±Π»ΠΈΡ†Π° 5.4. ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Ρ‹ DateField для управлСния ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π΄Π°Ρ‚Π΅ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ


ΠšΠΎΠ½ΡΡ‚Π°Π½Ρ‚Π° DateField β€” ОписаниС

public static int DATE β€” ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Ρ‚Ρƒ

public static int DATE TIME β€” ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя

public static int TIME β€” ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ врСмя


Π’Ρ€Π΅Ρ‚ΡŒΠΈΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ конструктора DateField Π² листингС 5.5 являСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π·ΠΎΠ½, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Java.util.TiraeZone. ΠžΡΡ‚Π΅Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ΡΡŒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ спСцификация MIDP ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π·ΠΎΠ½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ваша рСализация. ΠžΡ‡Π΅Π½ΡŒ вСроятно, Ρ‡Ρ‚ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ MIDP ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ.

Π’Ρ‹Π·ΠΎΠ² конструктора DateField ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ, которая Π½Π΅ поддСрТиваСтся вашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ MIDP. Если врСмСнная Π·ΠΎΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² конструкторС, Π½Π΅ поддСрТиваСтся вашСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ MIDP, ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π±Π΅Π· ошибки ΠΈΠ»ΠΈ прСдупрСТдСния, Π½ΠΎ врСмСнная Π·ΠΎΠ½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DateField Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ Π·ΠΎΠ½Ρƒ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Π½ΠΎ Π½Π΅ Ρ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π»ΠΈ. И врСмя, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π½Π° экранС, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π·ΠΎΠ½Ρƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ DateField, вмСсто Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·ΠΎΠ½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΡƒΠΊΠ°Π·Π°Π»ΠΈ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ конструктора.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ DateField ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…,

1. Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π΅ Π΄Π°Ρ‚Ρ‹, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π½Π° рисункС 5.4.

2. ΠΠ°ΠΆΠΌΠΈΡ‚Π΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π²Ρ‹Π±ΠΎΡ€Π° Select эмулятора устройства. Π’Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ дисплСй измСнился Π½Π° Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ Π½Π° рисункС 5.5.

3. ΠŸΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π²Π΅Ρ€Ρ… ΠΈ Π²Π½ΠΈΠ·, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π³ΠΎΠ΄, мСсяц ΠΈΠ»ΠΈ дСнь, ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΏΠΎ ТСланию.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ рСализация Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ экранныС клавиши Back (Назад) ΠΈ Save (Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ) Π½Π° экранС. Π’Π°ΠΊΠΎΠ΅ прСдставлСниС интСрфСйса Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎ для всСх Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ². Когда Π²Ρ‹ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚Π΅ΡΡŒ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌΡƒ экрану, врСмя ΠΈ Π΄Π°Ρ‚Π°, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π½Π° дисплСС, измСнятся.

На Π³Π»Π°Π²Π½ΠΎΠΌ экранС DateFieldDemo, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π° рисункС 5.4, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎ поля Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ, Π½Π°ΠΆΠ°Π², Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ. ДисплСй Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ экран, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½Ρ‹ΠΉ Π½Π° рисункС 5.6.



Рисунок 5.4. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ DateField состоит ΠΈΠ· Π΄Π²ΡƒΡ… частСй: ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ количСство ΠΊΠ°ΠΊ тСкст



Рисунок 5.5. ΠžΠ±ΡŠΠ΅ΠΊΡ‚ DateField Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ



Рисунок 5.6. РСализация прСдоставляСт этот ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ Π²Π°ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ


Stringltem

Класс Stringltem опрСдСляСт двухсоставный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ дисплСя. ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Stringltem содСрТат ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ нСизмСняСмый тСкст. На рисункС 5.7 ΠΏΠΎΠΊΠ°Π·Π°Π½ экран, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ классом StringltemDemo, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· ΠΎΠΊΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ основныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса.



Рисунок 5.7. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ элСмСнты состоят ΠΈΠ· Π΄Π²ΡƒΡ… частСй: тСкстовая ΠΌΠ΅Ρ‚ΠΊΠ° ΠΈ тСкстовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅


Π’ листингС 5.6 ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ этому классу части ΠΊΠΎΠ΄Π° StringltemDemo. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ соотнСсти тСкст Π² Π΄Π²ΡƒΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° конструктора с тСкстом, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΌ Π½Π° дисплСС. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ простой ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.


Листинг 5.6. Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Π΅ элСмСнты ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ


import javax.raicroedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.lcdui.Displayable;

import javax.microedition.lcdui.Form;

import javax.microedition.lcdui.Stringltem;

/**


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


@see javax.microedition.lcdui.Stringltem

*/

public class StringltemDemo extends Form implements CommandListener

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

private static Displayable instance;

private Stringltem si = new Stringltem("Stringltem's title",

"Immutable item text");

/**


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


"/

public StringltemDemo()

super("Stringltem Demo"); append(si); addCoramand(back);

setCommandListener(this);

}

instance = this;

}

…

}


ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Stringltem ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²Π°ΠΌ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ ΡΠ²ΡΠ·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΡƒ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π»ΠΎΠΆΠΈΡ‚ΡŒ String Π² Form вмСсто использования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Stringltem, Π½ΠΎ Stringltem ΠΈΠΌΠ΅Π΅Ρ‚ прСимущСство, Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‰Π΅Π΅ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ рСализация Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ строки ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΈ значСния останутся Π½Π° дисплСС вмСстС.


Gauge

Класс Gauge Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹ΠΌ ΠΎΡ‚ Item. Запуск GaugeDemo ΠΈΠ· основного экрана создаСт дисплСй, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС 5.8.



Рисунок 5.8. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈ Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ измСритСля


ΠŸΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС 5.8, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² Form Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ элСмСнта: Π΄Π²Π° измСритСля (gauge) ΠΈ ΠΌΠ΅Ρ‚ΠΊΡƒ String для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ. ΠœΠ΅Ρ‚ΠΊΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π²Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΉ, опрСдСляСмых классом Gauge: ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (interactive) ΠΈ Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (noninteractive). РСализация Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΈΠΏ.

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ измСритСля. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ экран, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠ°Π»ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ½ становится Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹ΠΌ, ΠΈ нСярким, ΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стрСлки, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ появились Π²Π½ΠΈΠ·Ρƒ экрана, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСритСля. Как ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ стрСлки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, эти Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹Π΅ стрСлки ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ придСтся Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ стрСлки нСсколько Ρ€Π°Π· ΠΏΡ€Π΅ΠΆΠ΄Π΅, Ρ‡Π΅ΠΌ Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ числа Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Ρ… столбиков. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ экрана, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ способСн ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Π»ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€. Если вСсь Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт ΠΊΠ°Π»ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€, слишком Π²Π΅Π»ΠΈΠΊ, рСализация измСритСля Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ нСсколько Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ полосы, которая появляСтся Π½Π° экранС измСритСля.

Π‘Ρ‚Ρ€Π΅Π»ΠΊΠ° Π²Π½ΠΈΠ· Π½Π° экранС ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚ΡŒ экран дальшС. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π° рисункС 5.8, экран нСдостаточно Π²Π΅Π»ΠΈΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π»ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€ Π² ΠΏΠΎΠ»Π½ΡƒΡŽ высоту. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π½ΠΈΠΈ экрана Π²Π½ΠΈΠ· отобразится вСсь Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΊΠ°Π»ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€. ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠ·, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ стрСлок, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Π²Π»Π΅Π²ΠΎ ΠΈ Π²ΠΏΡ€Π°Π²ΠΎ, Π½Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ измСритСля Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ.

Π’Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ взаимодСйствия с ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Оба Ρ‚ΠΈΠΏΠ° ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ исходный ΠΊΠΎΠ΄, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π² листингС 5.7, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ максимальноС ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Gauge Π² конструкторС.


Листинг 5.7. Π§Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для указания измСритСля, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΅Π³ΠΎ состояниС, ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ для прочтСния Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅


import javax.microedition.Icdui.Command;

import javax.microedition.lcdui.CommandListener;

import javax.microedition.Icdui.Displayable;

import javax.microedition.Icdui.Form;

import javax.microedition.Icdui.Gauge;

/**


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

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


*/

public class GaugeDemo extends Form

implements CommandListener

}

private String gaugelLabel = new String("Interactive gauge");

private Gauge interactiveGauge = new Gauge("Interactive", true, 50, 15);

private String gauge2Label = new String("Non-interactive");

private Gauge staticGauge = new Gauge ("Static", false, 50, 25);

/**


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


*/

public GaugeDemol)

}

super("Gauge Demo");

append(gaugelLabel); append(interacciveGauge);

append(gauge2Label); append(staticGauge);

}

addCommand(back); setCoramandListener(this);

instance = this;

}

…

}


Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ дСмонстрационной вСрсии, настоящСС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, вСроятно, Ρ‚Π°ΠΊΠΆΠ΅ измСняСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ измСритСля Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ своСго ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π² классС Gauge:

public void setValue(int value) public int getValuel)


Ticker

Π’ΠΈΠΊΠ΅Ρ€ (Ticker) являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌΡ‹ΠΉ тСкст Π½Π°Π²Π΅Ρ€Ρ…Ρƒ дисплСя. TickerDemo Π² листингС 5.8 создаСт дисплСй, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π½Π° рисункС 5.9.